Search Results

Search found 3278 results on 132 pages for 'george green'.

Page 24/132 | < Previous Page | 20 21 22 23 24 25 26 27 28 29 30 31  | Next Page >

  • how to import mesh animation from cinema4d into blender ?

    - by George Profenza
    I need to import a mesh animation from Cinema4D into Blender. I tried to do that using Collada.The Collada 1.3 importer doesn't seem to do anything, the Collada 1.4 importer seems to work, but the animation didn't get imported into Blender. After reading this post, I tried modifying the animation nodes in the collada files, as explained in the post: <library animation> <animation> <animation> data <animation> <animation> data <animation> <animation> <library animation> to this: <library animation> <animation> data <animation> <animation> data <animation> <library animation> , but that doesn't work for me. I get an errors when the file is parsed. Any hints on how to import a mesh animation from Cinema4D into Blender ?

    Read the article

  • xgamma -display parameter for dual monitor setup

    - by Shiplu
    I want to change gamma for my first monitor. Every time I invoke xgamma with different -display parameters it somehow points to my second monitor. But I want to modify first one. I tried these commands. The parameters I have used for -display are :0, :0.0, :0.1, :1.0, :1.1, :1. Only the first 2 works. But it points to my second monitor. Not the first one. Here is a shell script to test it. shiplu@KubuntuD:~$ xgamma -display :0 -> Red 1.000, Green 1.000, Blue 1.000 shiplu@KubuntuD:~$ xgamma -display :0.0 -> Red 1.000, Green 1.000, Blue 1.000 shiplu@KubuntuD:~$ xgamma -display :0.1 xgamma: unable to open display ':0.1' shiplu@KubuntuD:~$ xgamma -display :1.0 xgamma: unable to open display ':1.0' shiplu@KubuntuD:~$ xgamma -display :1.1 xgamma: unable to open display ':1.1' shiplu@KubuntuD:~$ xgamma -display :1 xgamma: unable to open display ':1' How can I change the gamma for the first/primary monitor?

    Read the article

  • Directory name for non-generic Proprietary stuff

    - by George Bailey
    Is there a common or standard directory name for the company-specific stuff that exists in a server? This would include any crons, scripts, webserver docroots, programs, non-database storage areas, service codebases, etc. We could of course put crons in /etc/cron.d, put docroots in /home/webservd, scripts in one of the bin directories, but that would be messy. If XYZ Technology Corp wanted to have all the non-generic stuff in one place, would they make a directory /xyz or /home/xyz or is there an alternative directory name that is not company-specific, but intended for company-specific stuff? What is most common?

    Read the article

  • Hyper-V VMs hanging 10 minutes after startup

    - by Ken George
    Hyper-V running under a fresh install of 2008 R2 DC 2 VMs both running 2008 R2 STD One VM has SQL 2008 Server w/ SP2 and Office 2007 Enterprise w/ SP2 Othe VMS only Office 2007 w/ SP2. Approximately 10 minutes after reboot the Hyuper-V host the VMs will hang Hang = answers pings, but no RDP connections and Hyper-V console session is non responsive Disabled Hyper-V and had no proble with 2008 R2 DC host. Started the three Hyper-V services and 10 minutes later was hung again. Hardware is HP DL380 G4 2 socket, 48 GB, Internal SAS controller 1.5TB C drive VMs .VHDs are on external SAS controller on a 1.5 TB RAID5 volume. Nothing in event log on either VMs or Hyper-V host. Ken

    Read the article

  • Measuring accesses to files - apache

    - by George
    So, I run a website, that among other things serves some files (usually PDFs). All of these are stored under a specific directory on the server: /var/www/vhosts/mysite.com/httpdocs/site/pdf_files Due to storage issues on my VPS I am thinking of getting some S3 or other cloud storage, and mount it as a drive using S3QL/S3FS. Then I will be able to have the pdf_files folder symlinked to the cloud folder and serve those files using that, without any changes on the web app (is that a good plan?) Now, before doing that, to estimate costs, I need to measure how many file accesses people do, how many times those pdf files are downloaded each month for example. Basically how many times those pdf files are accessed through the webserver. I'd like to do it on the apache level. What's the best way that this can be done? e.g.: measuring the bandwidth used by files in that specific folder would also be nice, but estimating the GET requests I'll be doing to amazon is more important.

    Read the article

  • Best Laptop for Student?

    - by George Stocker
    I'm looking for a laptop to buy that meets the following criteria: Company with good warranty and Technical support/Customer Service Less than $1000 for laptop. Laptop does not need to be a powerhouse, but it needs to have good bang for the buck (Not a celeron processor, at least 2GB memory, etc) Laptop will be used for school related activities (Homework, classwork, general computer usage). This laptop is for a friend of mine, a new college student.

    Read the article

  • How do I create an ad hoc network in Windows 8?

    - by George Edison
    For the life of me, I can't figure out how to create an ad hoc wireless network in Windows 8. Here is what happens if I follow the steps from Windows 7: Right click the network icon and click "Network and Sharing Center": Click "Set up a new connection or network": Where is the option to create an ad hoc network? Therefore I have two related questions: Did I miss something? Is it in there somewhere and I just haven't found it yet? If this feature is not available, is there a tool somewhere I can use that provides this capability? Further information: I have an Intel Wireless WiFi 4965 AGN adapter. I tried the Intel PRO wireless tool and it didn't offer an ad hoc option.

    Read the article

  • Cisco SG200 vlan issue in ESXi VSA cluster

    - by George
    I have three Cisco SG200-26 switches, and I also have two ESXi hosts that I have connected like shown in the below "best practice" map by VMware: http://communities.vmware.com/servlet/JiveServlet/previewBody/17393-102-1-22458/VSA_networking_map.pdf Even though I created the VLANs in the SG200 and I set the two VLANs (508 and 608) as allowed for these untagged ports (where my ESX NIC's are connected), I can not ping from host 1 to host 2 when configuring the NIC's to use 608 VLAN. Am I missing something? my IP's are all in the 192.168. range, and the only reason I need the VLANs is to isolate the traffic of VSA back-end internally, only the two hosts will be using the VLANs. So I think I do not have to create virtual interfaces on my router since that's the case, is my understanding correct? Also sending my switch config screenshot below.. all 3 switches have the latest firmware (it seems these were originally linksys and got rebranded as cisco after the acquisition) http://img31.imageshack.us/img31/2503/switch.gif Any ideas what to change on the Cisco SG200 to make this work , would be appreciated! The second VLAN (608) only needs two IP's: 192.168.0.1 and 192.168.0.2 The first VLAN (508) will have about 15 IP's for ESXi Management and VSA cluster service, I could use either 192.168.1.xx or 10.0.1.xx The rest of my network (about 50 clients) is in 192.168.1.xx range VMware also states that the VLAN protocol on the physical switch must be 802.1Q, not ISL, anyone knows which of the two my SG200-26 uses? In addition to that, the only requirement from VSA is that my two hosts: -Are in the same subnet. -Have static IP addresses set. -Have the same Default Gateway configured. If I need inter-vlan routing for this, I suppose I have to create virtual interfaces on my sonicwall, and assign an IP for each VLAN, and then set routes between them? Thank you for your time!

    Read the article

  • Version `GLIBCXX_3.4.15' not found in CentOS (in file /usr/lib/libstdc++.so.6)

    - by George Kastrinis
    I try to use a program and I get the following error. /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found Under /usr/lib64 the libstdc++ I see is libstdc++.so.6.0.13 (and a soft link). With strings libstdc++.so.6.0.13 | grep GLIBCXX I get GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_FORCE_NEW GLIBCXX_DEBUG_MESSAGE_LENGTH With cat /etc/redhat-release I get Red Hat Enterprise Linux Workstation release 6.4 (Santiago) So the question in what should I do in order to fix that. Should I install some new packages and if yes which ones?

    Read the article

  • FTPS SSH Host Key after IP Address Change

    - by David George
    I have a Secure FTP (FTPS) server that my remote sites to upload files to daily via scripted routines that run. I have had issues in the past when upgrading hardware and deploying new servers causing the RSA Fingerprint to change for that server. Then all my remote sites can't connect until I have the old key removed (usually via ssh_keygen -r myserver.com). I now have to change the IP address for myserver.com and I wondered if there is anyway to proactively generate new host keys so that when the server address changes all my FTPS client remote sites don't break?

    Read the article

  • Device cannot be added on software-raid-1 array on Ubuntu 12.04

    - by George Pligor
    Unfortunately all tutorials I have found online until now on how to setup software-raid-1 are outdated on ubuntu 12.40 My target is to setup it on a system with a secondary disk drive that is already running. Format is not an option! I am trying to follow and adapt from 11.10 to 12.04 the following tutorial: http://www.howtoforge.com/how-to-set-up-software-raid1-on-a-running-lvm-system-incl-grub2-configuration-ubuntu-11.10-p2 On the above tutorial there is a successful command which creates a raid-1 array by setting the first disk drive with the installed system as missing: mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1 But when the time comes to add the first main drive with the installed system on the raid-array with this command: mdadm --add /dev/md0 /dev/sda1 I receive an error message. The error message says that the device /dev/sda is (which makes sense) busy! Note: hardware raid solution is not available since the system is a laptop with two disk drives! Thank you

    Read the article

  • PhpMyAdmin::403 error - don't have permission to enter localhost/phpmyadmin/ on Apache2, Fedora 13

    - by George
    I am running an apache 2.17 at a Fedora 13. I did install phpmyadmin from the repos (via yum). It is installed in /usr/share/phpMyAdmin. I did make a symlink from my document root to the /user/share/phpMyadmin. I set 755 permsissions on that folder, set it to be owned by user apache and group apache. And yet, when I try to open http://localhost/phpmyadmin, it gives me the 403 error - you do not have permisssion! I tried also commenting some deny lines in the phpMyAdmin.conf file, no success. Any help would be gladly appreciated.

    Read the article

  • My hard drive seems to be overheating... what should I do?

    - by George Edison
    After a cold boot, the hard drive in my notebook jumps to 56? within an hour or so of idling. Is 56? a cause for alarm? Notes: The notebook is on a flat desk and none of the vents are obstructed. The video card is currently at 55? and the CPU at 50?. It's a Western Digital 250GB hard drive. SMART reports the drive healthy but does warn that: Edit: this problem had a very surprise ending. I inverted the notebook and unscrewed some of the panels on the back (there was one covering the hard drive, and one that provided access to the memory). I couldn't see any dust, so I simply screwed everything back together and powered it on... and it worked! The temperature is now staying at 46?, and it feels notable cooler to the touch. So I can only assume that some internal fan was malfunctioning or something. Whatever the case, it's working now so I won't complain. Edit: I have an SSD now, so temperature isn't as big an issue as it was when I had a mechanical drive.

    Read the article

  • Removing HTML from Pidgin conversations

    - by George
    Hi Everyone I'm using Pidgin 2.5.5 with SIPE for talking to MS Communicator user at work. The MS Communicator was just now upgraded and I'm seeing HTML markup with messages. Are there any plugins to interpret HTML and apply the styles or parse it out ? Thanks -G EDIT1: I'm running this on Windows EDIT2: my convos look like person@address (time) no

    Read the article

  • GDL Presents: Van Gogh Meets Alan Turing

    GDL Presents: Van Gogh Meets Alan Turing How can art and daily life be joined together? Host Ido Green chats with creators Uri Shaked & Tom Teman about tackling this question with their "Music Room" -- a case study in the power of Android -- and with Emmanuel Witzthum on his project "Dissolving Realities," which aims to connect the virtual environment of the Internet using Google Street View. Host: Ido Green, Developer Advocate Guests: Uri Shaked and Emmanuel Witzthum From: GoogleDevelopers Views: 0 0 ratings Time: 00:00 More in Science & Technology

    Read the article

  • find the next due date after today within a group in an Excel PivotTable

    - by Dennis George
    I have got a table set up in one sheet with "transactions". Each row contains a name of a vendor, the amount owed or paid depending on transaction type, and the due date/transaction date. Here is some simplified sample data: Vendor Date Invoice Payment Vendor A 6/30 $200 Vendor A 6/30 ($200) Vendor B 7/5 $500 Vendor B 7/5 ($500) Vendor C 10/28 $50 Vendor A 10/30 $100 Vendor C 11/15 $50 I have already built a PivotTable from that table to group these transactions by vendor and sum the remainder owed. What I'm trying to figure out is how to, for each vendor, get the next due date (min date of the group, excluding dates < Today()), or if there is no next due date then I want to see the max date for that group. Here is what my PivotTable looks like, plus the date column I'd like to add (assuming Today() = 10/23): Vendor Date Owed Vendor B 7/5 - Vendor C 10/28 $100 Vendor A 10/30 $100 I know calling it next due date might not be so accurate if I end up with the date of a payment in that column, but I'm ok with that. tl;dr : I want to find the next earliest date within each group, or the last date. How do I do this?

    Read the article

  • SMTP Unreachable from Specific Networks

    - by Jason George
    I host my business site through a VPS account. The instance runs Ubuntu and I'm using POSTFIX+Dovecot as my mail server. For the most part, the mail server works fine. I have noticed, however, that I can not send mail from specific local networks. I noticed this at a client's office serval months ago. I can receive email, but any time I tried to send mail when connected to their network the connection would time out. Since I could send my mail after leaving, I chalked it up to improper network configuration and didn't worry about it. Unfortunately I've recently moved, switched service providers, and am forced to use the service providers router due to the special set-up they put in place to give me DSL in the sticks--well beyond the typical range for a DSL run. Now I'm unable to send email from home, which is a problem. I have tried sending email through my phone (using cellular service rather than my DSL) just to confirm the server is currently working. I'm not even sure where start debugging. Any ideas on how I might track down the issue would be greatly appreciated.

    Read the article

  • How do I access a shared folder using credentials other than the ones I logged in with?

    - by George Sealy
    I have a lab full of Windows 7 machines, and a shared login (user360) that all my students use. I also have a shared folder that they can all have read/write access to (for moving files around easily). My problem is that I also want to be able to create a shared folder for each student for submitting assignments. I can set up a shared folder with permissions for just a single user, and not the 'user360' account. The problem is, when I'm logged in as user360, and I try to open the 'StudentA', Windows never asks me for alternate credentials, it just refuses access because the user360 account is not allowed access. Can anyone suggest a fix for this?

    Read the article

  • One domain hiding two servers

    - by George DSeas
    For our SaaS web-app we have two identical servers in two geographically separated data centers. FOO_1 is the production server and does real-time (MySQL master-slave) replication to its backup F00_2. We want our users to always go to THEFOO.COM which somehow points to the production server. So even if FOO_1 dies, we can just switch THEFOO.COM to redirect to FOO_2 so the failure is transparent. This switch can be manual or automatic but without failback (if FOO_1 somehow becomes available again). Is there a way to do this with DNS? I am getting stuck with ANAME and CNAMEs configuration. We don't use sub-domains, just straight domains. If not, what are other options? Does it make sense to just have a web server at LOVELY_FOO.COM and just redirect all traffic? I also looked at load balancers but didn't see a solution for across data centers/network providers.

    Read the article

  • How to get Windows 7 to automatically connect to an ad-hoc network?

    - by George Edison
    I have two machines - one is running Ubuntu 12.04 64-bit and the other is running Windows 7 Starter Edition (32-bit). The Ubuntu machine is connected to the Internet via the eth0 interface. That machine also has a wireless network interface (wlan0) that is currently functioning as an ad-hoc network. I can connect to the ad-hoc network just fine with the Windows machine but each time I wish to do so, I must manually initiate the connection and enter the password. Is there some way to instruct Windows to automatically connect to this network (an option I have for standard wireless networks but not ad-hoc networks)?

    Read the article

  • More than 3 seconds "Initial Connection" time (webpagetest.org)

    - by George Tasioulis
    I'm having a weird issue with a vBulletin forum, on a 2? Xeon E5645 w/ 16GB RAM, cPanel and LiteSpeed webserver; It takes too long to start loading... When I tested it with webpagetest.org I saw that for every request there's a 3 second "Initial connection" delay, which I don't know why is happening. Here's a screenshot: CPU Load is between 0.03 and 0.05, I've got several GB of free RAM, practical no I/O activity, and this delay can occur even with only one visitor on the forum. Where do you suggest I start searching? What could be the reason for this kind of delay? I don't think it's the webserver, or the forum because there's another website on the server (total 2 sites) which is WordPress based, and has exactly the same issue with the 3 second initial connection delay. I believe it's OS related, but need a clue on where to start looking. Thanks in advance :)

    Read the article

  • Secondary IP (eth0:0) acts like main server IP

    - by George Tasioulis
    I have a CentOS server, configured with 4 consecutive IPs: eth0 5.x.x.251 eth0:0 5.x.x.252 eth0:1 5.x.x.253 eth0:2 5.x.x.254 The problem is that all traffic goes out to the internet with eth0:0 (5.x.x.252) as the source IP, instead of eth0. # curl ifconfig.me 5.x.x.252 How can I fix this, so that all traffic goes out via eth0, ie my main IP? PS: My server is VPS running on a Xen dom0, the latter being configured in routed mode networking. Thanks in advance! Server configuration # ifconfig eth0 Link encap:Ethernet HWaddr 00:x:x:x:x:AE inet addr:5.x.x.251 Bcast:5.x.x.255 Mask:255.255.255.255 inet6 addr: fe80::x:x:x:x/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:14675569 errors:0 dropped:0 overruns:0 frame:0 TX packets:9463227 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4122016502 (3.8 GiB) TX bytes:25959110751 (24.1 GiB) Interrupt:23 eth0:0 Link encap:Ethernet HWaddr 00:x:x:x:x:AE inet addr:5.x.x.252 Bcast:5.x.x.255 Mask:255.255.255.224 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:23 eth0:1 Link encap:Ethernet HWaddr 00:x:x:x:x:AE inet addr:5.x.x.253 Bcast:5.x.x.255 Mask:255.255.255.224 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:23 eth0:2 Link encap:Ethernet HWaddr 00:x:x:x:x:AE inet addr:5.x.x.254 Bcast:5.x.x.255 Mask:255.255.255.224 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:23 # cat /etc/hosts 127.0.0.1 localhost.localdomain localhost 5.x.x.251 [fqdn] [hostname] # cat ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=5.x.x.251 NETMASK=255.255.255.224 SCOPE="peer 5.x.y.82" # cat ifcfg-eth0:0 DEVICE=eth0:0 BOOTPROTO=static ONBOOT=yes IPADDR=5.x.x.252 NETMASK=255.255.255.224 # cat route-eth0 ADDRESS0=0.0.0.0 NETMASK0=0.0.0.0 GATEWAY0=5.x.y.82 # netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 5.x.y.82 0.0.0.0 255.255.255.255 UH 0 0 0 eth0 5.x.x.224 0.0.0.0 255.255.255.224 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 0.0.0.0 5.x.y.82 0.0.0.0 UG 0 0 0 eth0

    Read the article

  • Active Directory Time Synchronisation - Time-Service Event ID 50

    - by George
    I have an Active Directory domain with two DCs. The first DC in the forest/domain is Server 2012, the second is 2008 R2. The first DC holds the PDC Emulator role. I sporadically receive a warning from the Time-Service source, event ID 50: The time service detected a time difference of greater than %1 milliseconds for %2 seconds. The time difference might be caused by synchronization with low-accuracy time sources or by suboptimal network conditions. The time service is no longer synchronized and cannot provide the time to other clients or update the system clock. When a valid time stamp is received from a time service provider, the time service will correct itself. Time sync in the domain is configured with the second DC to synchronise using the /syncfromflags:DOMHIER flag. The first DC is configured to sync time using a /syncfromflags:MANUAL /reliable:YES, from a peerlist consisting of a number of UK based stratum 2 servers, such as ntp2d.mcc.ac.uk. I'm confused why I receive this event warning. It implies that my PDC emulator cannot synchronise time with a supposedly reliable external time source, and it quotes a time difference of 5 seconds for 900 seconds. It's worth also mentioning that I used to use a UK pool from ntp.org but I would receive the warning much more often. Since updating to a number of UK based academic time servers, it seems to be more reliable. Can someone with more experience shed some light on this - perhaps it is purely transient? Should I disregard the warning? Is my configuration sound? EDIT: I should add that the DCs are virtual, and installed on two separate VMware ESXi/vSphere physical hosts. I can also confirm that as per MDMarra's comment and best practice, VMware timesync is disabled, since: c:\Program Files\VMware\VMware Tools\VMwareToolboxCmd.exe timesync status returns Disabled. EDIT 2 Some strange new issue has cropped up. I've noticed a pattern. Originally, the event ID 50 warnings would occur at about 1230pm each day. This is interesting since our veeam backup happens at 12 midday. Since I made the changes discussed here, I now receive an event ID 51 instead of 50. The new warning says that: The time sample received from peer server.ac.uk differs from the local time by -40 seconds (Or approximately 40 seconds). This has happened two days in a row. Now I'm even more confused. Obviously the time never updates until I manually intervene. The issue seems to be related to virtualisation and veeam. Something may be occuring when veeam is backing up the PDCe. Any suggestions? UPDATE & SUMMARY msemack's excellent list of resources below (the accepted answer) provided enough information to correctly configure the time service in the domain. This should be the first port of call for any future people looking to verify their configuration. The final "40 second jump" issue I have resolved (there are no more warnings) through adjusting the VMware time sync settings as noted in the veeam knowledge base article here: http://www.veeam.com/kb1202 In any case, should any future reader use ESXi, veeam or not, the resources here are an excellent source of information on the time sync topic and msemack's answer is particularly invaluable.

    Read the article

  • Enum driving a Visual State change via the ViewModel

    - by Chris Skardon
    Exciting title eh? So, here’s the problem, I want to use my ViewModel to drive my Visual State, I’ve used the ‘DataStateBehavior’ before, but the trouble with it is that it only works for bool values, and the minute you jump to more than 2 Visual States, you’re kind of screwed. A quick search has shown up a couple of points of interest, first, the DataStateSwitchBehavior, which is part of the Expression Samples (on Codeplex), and also available via Pete Blois’ blog. The second interest is to use a DataTrigger with GoToStateAction (from the Silverlight forums). So, onwards… first let’s create a basic switch Visual State, so, a DataObj with one property: IsAce… public class DataObj : NotifyPropertyChanger { private bool _isAce; public bool IsAce { get { return _isAce; } set { _isAce = value; RaisePropertyChanged("IsAce"); } } } The ‘NotifyPropertyChanger’ is literally a base class with RaisePropertyChanged, implementing INotifyPropertyChanged. OK, so we then create a ViewModel: public class MainPageViewModel : NotifyPropertyChanger { private DataObj _dataObj; public MainPageViewModel() { DataObj = new DataObj {IsAce = true}; ChangeAcenessCommand = new RelayCommand(() => DataObj.IsAce = !DataObj.IsAce); } public ICommand ChangeAcenessCommand { get; private set; } public DataObj DataObj { get { return _dataObj; } set { _dataObj = value; RaisePropertyChanged("DataObj"); } } } Aaaand finally – hook it all up to the XAML, which is a very simple UI: A Rectangle, a TextBlock and a Button. The Button is hooked up to ChangeAcenessCommand, the TextBlock is bound to the ‘DataObj.IsAce’ property and the Rectangle has 2 visual states: IsAce and NotAce. To make the Rectangle change it’s visual state I’ve used a DataStateBehavior inside the Layout Root Grid: <i:Interaction.Behaviors> <ei:DataStateBehavior Binding="{Binding DataObj.IsAce}" Value="true" TrueState="IsAce" FalseState="NotAce"/> </i:Interaction.Behaviors> So now we have the button changing the ‘IsAce’ property and giving us the other visual state: Great! So – the next stage is to get that to work inside a DataTemplate… Which (thankfully) is easy money. All we do is add a ListBox to the View and an ObservableCollection to the ViewModel. Well – ok, a little bit more than that. Once we’ve got the ListBox with it’s ItemsSource property set, it’s time to add the DataTemplate itself. Again, this isn’t exactly taxing, and is purely going to be a Grid with a Textblock and a Rectangle (again, I’m nothing if not consistent). Though, to be a little jazzy I’ve swapped the rectangle to the other side (living the dream). So, all that’s left is to add some States to the template.. (Yes – you can do that), these can be the same names as the others, or indeed, something else, I have chosen to stick with the same names and take the extra confusion hit right on the nose. Once again, I add the DataStateBehavior to the root Grid element: <i:Interaction.Behaviors> <ei:DataStateBehavior Binding="{Binding IsAce}" Value="true" TrueState="IsAce" FalseState="NotAce"/> </i:Interaction.Behaviors> The key difference here is the ‘Binding’ attribute, where I’m now binding to the IsAce property directly, and boom! It’s all gravy!   So far, so good. We can use boolean values to change the visual states, and (crucially) it works in a DataTemplate, bingo! Now. Onwards to the Enum part of this (finally!). Obviously we can’t use the DataStateBehavior, it' only gives us true/false options. So, let’s give the GoToStateAction a go. Now, I warn you, things get a bit complex from here, instead of a bool with 2 values, I’m gonna max it out and bring in an Enum with 3 (count ‘em) 3 values: Red, Amber and Green (those of you with exceptionally sharp minds will be reminded of traffic lights). We’re gonna have a rectangle which also has 3 visual states – cunningly called ‘Red’, ‘Amber’ and ‘Green’. A new class called DataObj2: public class DataObj2 : NotifyPropertyChanger { private Status _statusValue; public DataObj2(Status status) { StatusValue = status; } public Status StatusValue { get { return _statusValue; } set { _statusValue = value; RaisePropertyChanged("StatusValue"); } } } Where ‘Status’ is my enum. Good times are here! Ok, so let’s get to the beefy stuff. So, we’ll start off in the same manner as the last time, we will have a single DataObj2 instance available to the Page and bind to that. Let’s add some Triggers (these are in the LayoutRoot again). <i:Interaction.Triggers> <ei:DataTrigger Binding="{Binding DataObject2.StatusValue}" Value="Amber"> <ei:GoToStateAction StateName="Amber" UseTransitions="False" /> </ei:DataTrigger> <ei:DataTrigger Binding="{Binding DataObject2.StatusValue}" Value="Green"> <ei:GoToStateAction StateName="Green" UseTransitions="False" /> </ei:DataTrigger> <ei:DataTrigger Binding="{Binding DataObject2.StatusValue}" Value="Red"> <ei:GoToStateAction StateName="Red" UseTransitions="False" /> </ei:DataTrigger> </i:Interaction.Triggers> So what we’re saying here is that when the DataObject2.StatusValue is equal to ‘Red’ then we’ll go to the ‘Red’ state. Same deal for Green and Amber (but you knew that already). Hook it all up and start teh project. Hmm. Just grey. Not what I wanted. Ok, let’s add a ‘ChangeStatusCommand’, hook that up to a button and give it a whirl: Right, so the DataTrigger isn’t picking up the data on load. On the plus side, changing the status is making the visual states change. So. We’ll cross the ‘Grey’ hurdle in a bit, what about doing the same in the DataTemplate? <Codey Codey/> Grey again, but if we press the button: (I should mention, pressing the button sets the StatusValue property on the DataObj2 being represented to the next colour). Right. Let’s look at this ‘Grey’ issue. First ‘fix’ (and I use the term ‘fix’ in a very loose way): The Dispatcher Fix This involves using the Dispatcher on the View to call something like ‘RefreshProperties’ on the ViewModel, which will in turn raise all the appropriate ‘PropertyChanged’ events on the data objects being represented. So, here goes, into turdcode-ville – population – me: First, add the ‘RefreshProperties’ method to the DataObj2: internal void RefreshProperties() { RaisePropertyChanged("StatusValue"); } (shudder) Now, add it to the hosting ViewModel: public void RefreshProperties() { DataObject2.RefreshProperties(); if (DataObjects != null && DataObjects.Count > 0) { foreach (DataObj2 dataObject in DataObjects) dataObject.RefreshProperties(); } } (double shudder) and now for the cream on the cake, adding the following line to the code behind of the View: Dispatcher.BeginInvoke(() => ((MoreVisualStatesViewModel)DataContext).RefreshProperties()); So, what does this *ahem* code give us: Awesome, it makes the single bound data object show the colour, but frankly ignores the DataTemplate items. This (by the way) is the same output you get from: Dispatcher.BeginInvoke(() => ((MoreVisualStatesViewModel)DataContext).ChangeStatusCommand.Execute(null)); So… Where does that leave me? What about adding a button to the Page to refresh the properties – maybe it’s a timer thing? Yes, that works. Right, what about using the Loaded event then eh? Loaded += (s, e) => ((MoreVisualStatesViewModel) DataContext).RefreshProperties(); Ahhh No. What about converting the DataTemplate into a UserControl? Anything is worth a shot.. Though – I still suspect I’m going to have to ‘RefreshProperties’ if I want the rectangles to update. Still. No. This DataTemplate DataTrigger binding is becoming a bit of a pain… I can’t add a ‘refresh’ button to the actual code base, it’s not exactly user friendly. I’m going to end this one now, and put some investigating into the use of the DataStateSwitchBehavior (all the ones I’ve found, well, all 2 of them are working in SL3, but not 4…)

    Read the article

< Previous Page | 20 21 22 23 24 25 26 27 28 29 30 31  | Next Page >