<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>kevin Mocha - DotNet | WPF</title>
    <link>http://blog.ilovedoudou.com/</link>
    <description>Bookmarks collected from web.</description>
    <language>en-us</language>
    <copyright>Kevin Mocha</copyright>
    <lastBuildDate>Mon, 03 May 2010 03:49:48 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>lulustock@gmail.com</managingEditor>
    <webMaster>lulustock@gmail.com</webMaster>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=613c544f-9e6f-4d4e-9724-12eb6ad38904</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,613c544f-9e6f-4d4e-9724-12eb6ad38904.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,613c544f-9e6f-4d4e-9724-12eb6ad38904.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=613c544f-9e6f-4d4e-9724-12eb6ad38904</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://stackoverflow.com/questions/58739/interview-questions-wpf-developer" href="http://stackoverflow.com/questions/58739/interview-questions-wpf-developer">http://stackoverflow.com/questions/58739/interview-questions-wpf-developer</a>
        </p>
        <p>
What should every WPF developer know? 
</p>
        <p>
          <strong>Entry Level</strong>
        </p>
        <ul>
          <li>
Strong .NET 2.0 Background &amp; willing to learn! 
</li>
          <li>
Explain dependency properties? 
</li>
          <li>
What's a style? 
</li>
          <li>
What's a template? 
</li>
          <li>
Binding 
</li>
          <li>
Differences between base classes: Visual, UIElement, FrameworkElement, Control 
</li>
          <li>
Visual vs Logical tree? 
</li>
          <li>
Property Change Notification (INotifyPropertyChange and ObservableCollection) 
</li>
          <li>
ResourceDictionary - Added by a7an 
</li>
          <li>
UserControls - Added by a7an 
</li>
          <li>
difference between bubble and tunnel routing strategies - added by Carlo 
</li>
        </ul>
        <p>
          <strong>Mid-level</strong>
        </p>
        <ul>
          <li>
Routed Events &amp; Commands 
</li>
          <li>
Converters - Added by Artur Carvalho 
</li>
          <li>
Explain WPF's 2-pass layout engine? 
</li>
          <li>
How to implement a panel? 
</li>
          <li>
Interoperability (WPF/WinForms) 
</li>
          <li>
Blend/Cider - Added by a7an 
</li>
          <li>
animations and storyboarding 
</li>
          <li>
ClickOnce Deployment 
</li>
          <li>
Skinning/Themeing 
</li>
          <li>
Custom Controls 
</li>
          <li>
How can worker threads update the UI? 
</li>
        </ul>
        <p>
          <strong>Senior</strong>
        </p>
        <ul>
          <li>
Example of attached behavior? 
</li>
          <li>
What is PRISM,CAL &amp; CAG? 
</li>
          <li>
How can worker threads update the UI? 
</li>
          <li>
WPF 3D - Added by a7an 
</li>
          <li>
Differences between Silverlight 2 and WPF 
</li>
          <li>
MVVM/MVP - Added by a7an 
</li>
          <li>
WPF Performance tuning 
</li>
          <li>
Pixel Shaders 
</li>
          <li>
Purpose of Freezables 
</li>
        </ul>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=613c544f-9e6f-4d4e-9724-12eb6ad38904" />
      </body>
      <title>What should every WPF developer know?</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,613c544f-9e6f-4d4e-9724-12eb6ad38904.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,613c544f-9e6f-4d4e-9724-12eb6ad38904.aspx</link>
      <pubDate>Mon, 03 May 2010 03:49:48 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://stackoverflow.com/questions/58739/interview-questions-wpf-developer" href="http://stackoverflow.com/questions/58739/interview-questions-wpf-developer"&gt;http://stackoverflow.com/questions/58739/interview-questions-wpf-developer&lt;/a&gt; 
&lt;p&gt;
What should every WPF developer know? 
&lt;p&gt;
&lt;strong&gt;Entry Level&lt;/strong&gt; 
&lt;ul&gt;
&lt;li&gt;
Strong .NET 2.0 Background &amp;amp; willing to learn! 
&lt;li&gt;
Explain dependency properties? 
&lt;li&gt;
What's a style? 
&lt;li&gt;
What's a template? 
&lt;li&gt;
Binding 
&lt;li&gt;
Differences between base classes: Visual, UIElement, FrameworkElement, Control 
&lt;li&gt;
Visual vs Logical tree? 
&lt;li&gt;
Property Change Notification (INotifyPropertyChange and ObservableCollection) 
&lt;li&gt;
ResourceDictionary - Added by a7an 
&lt;li&gt;
UserControls - Added by a7an 
&lt;li&gt;
difference between bubble and tunnel routing strategies - added by Carlo 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Mid-level&lt;/strong&gt; 
&lt;ul&gt;
&lt;li&gt;
Routed Events &amp;amp; Commands 
&lt;li&gt;
Converters - Added by Artur Carvalho 
&lt;li&gt;
Explain WPF's 2-pass layout engine? 
&lt;li&gt;
How to implement a panel? 
&lt;li&gt;
Interoperability (WPF/WinForms) 
&lt;li&gt;
Blend/Cider - Added by a7an 
&lt;li&gt;
animations and storyboarding 
&lt;li&gt;
ClickOnce Deployment 
&lt;li&gt;
Skinning/Themeing 
&lt;li&gt;
Custom Controls 
&lt;li&gt;
How can worker threads update the UI? 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Senior&lt;/strong&gt; 
&lt;ul&gt;
&lt;li&gt;
Example of attached behavior? 
&lt;li&gt;
What is PRISM,CAL &amp;amp; CAG? 
&lt;li&gt;
How can worker threads update the UI? 
&lt;li&gt;
WPF 3D - Added by a7an 
&lt;li&gt;
Differences between Silverlight 2 and WPF 
&lt;li&gt;
MVVM/MVP - Added by a7an 
&lt;li&gt;
WPF Performance tuning 
&lt;li&gt;
Pixel Shaders 
&lt;li&gt;
Purpose of Freezables 
&lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=613c544f-9e6f-4d4e-9724-12eb6ad38904" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,613c544f-9e6f-4d4e-9724-12eb6ad38904.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=b15671d3-1a99-4b12-97c7-837b51a84799</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,b15671d3-1a99-4b12-97c7-837b51a84799.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,b15671d3-1a99-4b12-97c7-837b51a84799.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=b15671d3-1a99-4b12-97c7-837b51a84799</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://joyfulwpf.blogspot.com/2009/05/mvvm-invoking-command-on-attached-event.html" href="http://joyfulwpf.blogspot.com/2009/05/mvvm-invoking-command-on-attached-event.html">http://joyfulwpf.blogspot.com/2009/05/mvvm-invoking-command-on-attached-event.html</a>
          <br />
          <a title="http://jacokarsten.wordpress.com/2009/03/27/applying-command-binding-to-any-control-and-any-event/" href="http://jacokarsten.wordpress.com/2009/03/27/applying-command-binding-to-any-control-and-any-event/">http://jacokarsten.wordpress.com/2009/03/27/applying-command-binding-to-any-control-and-any-event/</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=b15671d3-1a99-4b12-97c7-837b51a84799" />
      </body>
      <title>WPF M-V-VM command</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,b15671d3-1a99-4b12-97c7-837b51a84799.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,b15671d3-1a99-4b12-97c7-837b51a84799.aspx</link>
      <pubDate>Sat, 20 Mar 2010 03:51:53 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://joyfulwpf.blogspot.com/2009/05/mvvm-invoking-command-on-attached-event.html" href="http://joyfulwpf.blogspot.com/2009/05/mvvm-invoking-command-on-attached-event.html"&gt;http://joyfulwpf.blogspot.com/2009/05/mvvm-invoking-command-on-attached-event.html&lt;/a&gt;
&lt;br&gt;
&lt;a title="http://jacokarsten.wordpress.com/2009/03/27/applying-command-binding-to-any-control-and-any-event/" href="http://jacokarsten.wordpress.com/2009/03/27/applying-command-binding-to-any-control-and-any-event/"&gt;http://jacokarsten.wordpress.com/2009/03/27/applying-command-binding-to-any-control-and-any-event/&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=b15671d3-1a99-4b12-97c7-837b51a84799" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,b15671d3-1a99-4b12-97c7-837b51a84799.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=cc872bf2-7aa4-4701-a91f-751402407f6e</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,cc872bf2-7aa4-4701-a91f-751402407f6e.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,cc872bf2-7aa4-4701-a91f-751402407f6e.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=cc872bf2-7aa4-4701-a91f-751402407f6e</wfw:commentRss>
      <title>.Net Review (part 3)</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,cc872bf2-7aa4-4701-a91f-751402407f6e.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,cc872bf2-7aa4-4701-a91f-751402407f6e.aspx</link>
      <pubDate>Fri, 19 Mar 2010 20:12:42 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://msdn.microsoft.com/en-us/magazine/dd419663.aspx" href="http://msdn.microsoft.com/en-us/magazine/dd419663.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/dd419663.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;h5&gt;M-V-VM pattern
&lt;/h5&gt;
&lt;p&gt;
The PM pattern is similar to MVP in that it separates a view from its behavior and
state. The interesting part of the PM pattern is that an abstraction of a view is
created, called the Presentation Model. A view, then, becomes merely a rendering of
a Presentation Model. In Fowler's explanation, he shows that the Presentation Model
frequently updates its View, so that the two stay in sync with each other. That synchronization
logic exists as code in the Presentation Model classes.
&lt;/p&gt;
&lt;p&gt;
Unlike the Presenter in MVP, &lt;strong&gt;a ViewModel does not need a reference to a view&lt;/strong&gt;.
The view binds to properties on a ViewModel, which, in turn, exposes data contained
in model objects and other state specific to the view. The bindings between view and
ViewModel are simple to construct because a ViewModel object is set as the DataContext
of a view. If property values in the ViewModel change, those new values automatically
propagate to the view via data binding. When the user clicks a button in the View,
a command on the ViewModel executes to perform the requested action. The ViewModel,
never the View, performs all modifications made to the model data.
&lt;/p&gt;
&lt;p&gt;
The single most important aspect of WPF that makes MVVM a great pattern to use is
the &lt;strong&gt;data binding infrastructure&lt;/strong&gt;. By binding properties of a view
to a ViewModel, you get loose coupling between the two and entirely remove the need
for writing code in a ViewModel that directly updates a view. The data binding system
also supports input validation, which provides a standardized way of transmitting
validation errors to a view. 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
Two other features of WPF that make this pattern so usable are &lt;strong&gt;data templates
and the resource system&lt;/strong&gt;. Data templates apply Views to ViewModel objects
shown in the user interface. You can declare templates in XAML and let the resource
system automatically locate and apply those templates for you at run time. You can
learn more about binding and data templates in my July 2008 article, "&lt;a href="http://msdn.microsoft.com/magazine/cc700358"&gt;Data
and WPF: Customize Data Display with Data Binding and WPF&lt;/a&gt;." 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
If it were not for the support for &lt;strong&gt;commands in WPF&lt;/strong&gt;, the MVVM pattern
would be much less powerful. In this article, I will show you how a ViewModel can
expose commands to a View, thus allowing the view to consume its functionality. If
you aren't familiar with commanding, I recommend that you read Brian Noyes's comprehensive
article, "&lt;a href="http://msdn.microsoft.com/magazine/cc785480"&gt;Advanced WPF: Understanding
Routed Events and Commands in WPF&lt;/a&gt;," from the September 2008 issue. 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
In addition to the WPF (and Silverlight 2) features that make MVVM a natural way to
structure an application, the pattern is also popular because ViewModel classes are
easy to unit test. When an application's interaction logic lives in a set of ViewModel
classes, you can &lt;strong&gt;easily write code that tests it&lt;/strong&gt;. In a sense, Views
and unit tests are just two different types of ViewModel consumers. Having a suite
of tests for an application's ViewModels provides free and fast regression testing,
which helps reduce the cost of maintaining an application over time. 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
In addition to promoting the creation of automated regression tests, the testability
of ViewModel classes can assist in properly designing user interfaces that are easy
to skin. When you are designing an application, you can often decide whether something
should be in the view or the ViewModel by imagining that you want to write a unit
test to consume the ViewModel. If you can write unit tests for the ViewModel without
creating any UI objects, you can also completely skin the ViewModel because it has
no dependencies on specific visual elements. 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
Lastly, for developers who work with visual designers, using MVVM makes it much easier
to create &lt;strong&gt;a smooth designer/developer workflow&lt;/strong&gt;. Since a view is just
an arbitrary consumer of a ViewModel, it is easy to just rip one view out and drop
in a new view to render a ViewModel. This simple step allows for rapid prototyping
and evaluation of user interfaces made by the designers. 
&lt;p&gt;
The development team can focus on creating robust ViewModel classes, and the design
team can focus on making user-friendly Views. Connecting the output of both teams
can involve little more than ensuring that the correct bindings exist in a view's
XAML file. 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
&lt;strong&gt;Relaying Command Logic&lt;/strong&gt; 
&lt;p&gt;
Every view in the app has an empty codebehind file, except for the standard boilerplate
code that calls InitializeComponent in the class's constructor. In fact, you could
remove the views' codebehind files from the project and the application would still
compile and run correctly. Despite the lack of event handling methods in the views,
when the user clicks on buttons, the application reacts and satisfies the user's requests.
This works because of bindings that were established on the Command property of Hyperlink,
Button, and MenuItem controls displayed in the UI. Those bindings ensure that when
the user clicks on the controls, ICommand objects exposed by the ViewModel execute.
You can think of the command object as an adapter that makes it easy to consume a
ViewModel's functionality from a view declared in XAML. 
&lt;p&gt;
When a ViewModel exposes an instance property of type I&amp;shy;Command, the command object
typically uses that ViewModel object to get its job done. One possible implementation
pattern is to create a private nested class within the ViewModel class, so that the
command has access to private members of its containing ViewModel and does not pollute
the namespace. That nested class implements the ICommand interface, and a reference
to the containing ViewModel object is injected into its constructor. However, creating
a nested class that implements ICommand for each command exposed by a ViewModel can
bloat the size of the ViewModel class. More code means a greater potential for bugs. 
&lt;p&gt;
In the demo application, the RelayCommand class solves this problem. &lt;strong&gt;RelayCommand
allows you to inject the command's logic via delegates passed into its constructor.&lt;/strong&gt; This
approach allows for terse, concise command implementation in ViewModel classes. RelayCommand
is a simplified variation of the DelegateCommand found in the &lt;a href="http://msdn.microsoft.com/library/cc707890"&gt;Microsoft
Composite Application Library&lt;/a&gt;. 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
&lt;strong&gt;Data-binding in WPF&lt;/strong&gt; 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
&lt;a title="http://www.nbdtech.com/Free/WpfBinding.pdf" href="http://www.nbdtech.com/Free/WpfBinding.pdf"&gt;http://www.nbdtech.com/Free/WpfBinding.pdf&lt;/a&gt; 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
&lt;a href="http://blog.ilovedoudou.com/content/binary/WindowsLiveWriter/f6ad9ce20ad1.NetReviewpart3_E44B/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.ilovedoudou.com/content/binary/WindowsLiveWriter/f6ad9ce20ad1.NetReviewpart3_E44B/image_thumb_1.png" width="586" height="384"&gt;&lt;/a&gt; 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
&lt;a href="http://blog.ilovedoudou.com/content/binary/WindowsLiveWriter/f6ad9ce20ad1.NetReviewpart3_E44B/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.ilovedoudou.com/content/binary/WindowsLiveWriter/f6ad9ce20ad1.NetReviewpart3_E44B/image_thumb.png" width="618" height="609"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.ilovedoudou.com/content/binary/WindowsLiveWriter/f6ad9ce20ad1.NetReviewpart3_E44B/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.ilovedoudou.com/content/binary/WindowsLiveWriter/f6ad9ce20ad1.NetReviewpart3_E44B/image_thumb_2.png" width="508" height="191"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.ilovedoudou.com/content/binary/WindowsLiveWriter/f6ad9ce20ad1.NetReviewpart3_E44B/image_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.ilovedoudou.com/content/binary/WindowsLiveWriter/f6ad9ce20ad1.NetReviewpart3_E44B/image_thumb_3.png" width="576" height="271"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.ilovedoudou.com/content/binary/WindowsLiveWriter/f6ad9ce20ad1.NetReviewpart3_E44B/image_10.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.ilovedoudou.com/content/binary/WindowsLiveWriter/f6ad9ce20ad1.NetReviewpart3_E44B/image_thumb_4.png" width="584" height="279"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.ilovedoudou.com/content/binary/WindowsLiveWriter/f6ad9ce20ad1.NetReviewpart3_E44B/image_12.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.ilovedoudou.com/content/binary/WindowsLiveWriter/f6ad9ce20ad1.NetReviewpart3_E44B/image_thumb_5.png" width="597" height="441"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.ilovedoudou.com/content/binary/WindowsLiveWriter/f6ad9ce20ad1.NetReviewpart3_E44B/image_14.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.ilovedoudou.com/content/binary/WindowsLiveWriter/f6ad9ce20ad1.NetReviewpart3_E44B/image_thumb_6.png" width="532" height="259"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=cc872bf2-7aa4-4701-a91f-751402407f6e" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,cc872bf2-7aa4-4701-a91f-751402407f6e.aspx</comments>
      <category>DotNet;DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=29710879-006a-4a58-b876-25523074e98b</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,29710879-006a-4a58-b876-25523074e98b.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,29710879-006a-4a58-b876-25523074e98b.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=29710879-006a-4a58-b876-25523074e98b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://devlicio.us/blogs/christopher_bennage/archive/tags/ChumChase/default.aspx" href="http://devlicio.us/blogs/christopher_bennage/archive/tags/ChumChase/default.aspx">http://devlicio.us/blogs/christopher_bennage/archive/tags/ChumChase/default.aspx</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=29710879-006a-4a58-b876-25523074e98b" />
      </body>
      <title>WPF Tutorial</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,29710879-006a-4a58-b876-25523074e98b.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,29710879-006a-4a58-b876-25523074e98b.aspx</link>
      <pubDate>Fri, 04 Sep 2009 00:28:09 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://devlicio.us/blogs/christopher_bennage/archive/tags/ChumChase/default.aspx" href="http://devlicio.us/blogs/christopher_bennage/archive/tags/ChumChase/default.aspx"&gt;http://devlicio.us/blogs/christopher_bennage/archive/tags/ChumChase/default.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=29710879-006a-4a58-b876-25523074e98b" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,29710879-006a-4a58-b876-25523074e98b.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=0c85f989-8cba-41cb-a55e-51922f004f14</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,0c85f989-8cba-41cb-a55e-51922f004f14.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,0c85f989-8cba-41cb-a55e-51922f004f14.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=0c85f989-8cba-41cb-a55e-51922f004f14</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://geekswithblogs.net/claraoscura/archive/2008/10/17/125901.aspx" href="http://geekswithblogs.net/claraoscura/archive/2008/10/17/125901.aspx">http://geekswithblogs.net/claraoscura/archive/2008/10/17/125901.aspx</a>
        </p>
        <p>
“The solution I have found is to put each radio button in a different group and link
their checked/unchecked values via the converter. Like this:”
</p>
        <pre class="csharpcode">       &lt;RadioButton 
                Grid.Row=<span class="str">"1"</span> Grid.Column=<span class="str">"0"</span> GroupName=<span class="str">"rbGroupSuccess"</span> Margin=<span class="str">"8,0,0,0"</span> VerticalAlignment=<span class="str">"Center"</span> Content=<span class="str">"Success"</span> x:Name=<span class="str">"rbSuccess"</span> IsChecked=<span class="str">"{Binding
Path=IsSuccess, Mode=TwoWay, Converter={StaticResource nullableBooleanConverter},
ConverterParameter=true}"</span> /&gt; &lt;RadioButton Grid.Row=<span class="str">"1"</span> Grid.Column=<span class="str">"1"</span> GroupName=<span class="str">"rbGroupFailure"</span> Margin=<span class="str">"8,0,0,0"</span> VerticalAlignment=<span class="str">"Center"</span> Content=<span class="str">"Failure"</span> x:Name=<span class="str">"rbFailure"</span> IsChecked=<span class="str">"{Binding
Path=IsSuccess, Mode=TwoWay, Converter={StaticResource nullableBooleanConverter},
ConverterParameter=false}"</span> /&gt;</pre>
        <style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
        <p>
 
</p>
        <p>
 
</p>
        <pre class="csharpcode">    [ValueConversion(<span class="kwrd">typeof</span>(<span class="kwrd">bool</span>?), <span class="kwrd">typeof</span>(<span class="kwrd">bool</span>))] <span class="kwrd">public</span><span class="kwrd">class</span> SuccessConverter
: IValueConverter { <span class="kwrd">public</span><span class="kwrd">object</span> Convert(<span class="kwrd">object</span><span class="kwrd">value</span>,
Type targetType, <span class="kwrd">object</span> parameter, CultureInfo culture)
{ <span class="kwrd">bool</span> param = <span class="kwrd">bool</span>.Parse(parameter.ToString()); <span class="kwrd">if</span> (<span class="kwrd">value</span> == <span class="kwrd">null</span>)
{ <span class="kwrd">return</span><span class="kwrd">false</span>; } <span class="kwrd">else</span> { <span class="kwrd">return</span> !((<span class="kwrd">bool</span>)<span class="kwrd">value</span> ^
param); } } <span class="kwrd">public</span><span class="kwrd">object</span> ConvertBack(<span class="kwrd">object</span><span class="kwrd">value</span>,
Type targetType, <span class="kwrd">object</span> parameter, CultureInfo culture)
{ <span class="kwrd">bool</span> param = <span class="kwrd">bool</span>.Parse(parameter.ToString()); <span class="kwrd">return</span> !((<span class="kwrd">bool</span>)<span class="kwrd">value</span> ^
param); } }</pre>
        <style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=0c85f989-8cba-41cb-a55e-51922f004f14" />
      </body>
      <title>WPF RadioButtons and data binding</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,0c85f989-8cba-41cb-a55e-51922f004f14.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,0c85f989-8cba-41cb-a55e-51922f004f14.aspx</link>
      <pubDate>Mon, 31 Aug 2009 12:54:45 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://geekswithblogs.net/claraoscura/archive/2008/10/17/125901.aspx" href="http://geekswithblogs.net/claraoscura/archive/2008/10/17/125901.aspx"&gt;http://geekswithblogs.net/claraoscura/archive/2008/10/17/125901.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
“The solution I have found is to put each radio button in a different group and link
their checked/unchecked values via the converter. Like this:”
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;       &amp;lt;RadioButton 
                Grid.Row=&lt;span class="str"&gt;"1"&lt;/span&gt; Grid.Column=&lt;span class="str"&gt;"0"&lt;/span&gt; GroupName=&lt;span class="str"&gt;"rbGroupSuccess"&lt;/span&gt; Margin=&lt;span class="str"&gt;"8,0,0,0"&lt;/span&gt; VerticalAlignment=&lt;span class="str"&gt;"Center"&lt;/span&gt; Content=&lt;span class="str"&gt;"Success"&lt;/span&gt; x:Name=&lt;span class="str"&gt;"rbSuccess"&lt;/span&gt; IsChecked=&lt;span class="str"&gt;"{Binding
Path=IsSuccess, Mode=TwoWay, Converter={StaticResource nullableBooleanConverter},
ConverterParameter=true}"&lt;/span&gt; /&amp;gt; &amp;lt;RadioButton Grid.Row=&lt;span class="str"&gt;"1"&lt;/span&gt; Grid.Column=&lt;span class="str"&gt;"1"&lt;/span&gt; GroupName=&lt;span class="str"&gt;"rbGroupFailure"&lt;/span&gt; Margin=&lt;span class="str"&gt;"8,0,0,0"&lt;/span&gt; VerticalAlignment=&lt;span class="str"&gt;"Center"&lt;/span&gt; Content=&lt;span class="str"&gt;"Failure"&lt;/span&gt; x:Name=&lt;span class="str"&gt;"rbFailure"&lt;/span&gt; IsChecked=&lt;span class="str"&gt;"{Binding
Path=IsSuccess, Mode=TwoWay, Converter={StaticResource nullableBooleanConverter},
ConverterParameter=false}"&lt;/span&gt; /&amp;gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;    [ValueConversion(&lt;span class="kwrd"&gt;typeof&lt;/span&gt;(&lt;span class="kwrd"&gt;bool&lt;/span&gt;?), &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(&lt;span class="kwrd"&gt;bool&lt;/span&gt;))] &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; SuccessConverter
: IValueConverter { &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;object&lt;/span&gt; Convert(&lt;span class="kwrd"&gt;object&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;,
Type targetType, &lt;span class="kwrd"&gt;object&lt;/span&gt; parameter, CultureInfo culture)
{ &lt;span class="kwrd"&gt;bool&lt;/span&gt; param = &lt;span class="kwrd"&gt;bool&lt;/span&gt;.Parse(parameter.ToString()); &lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="kwrd"&gt;value&lt;/span&gt; == &lt;span class="kwrd"&gt;null&lt;/span&gt;)
{ &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;; } &lt;span class="kwrd"&gt;else&lt;/span&gt; { &lt;span class="kwrd"&gt;return&lt;/span&gt; !((&lt;span class="kwrd"&gt;bool&lt;/span&gt;)&lt;span class="kwrd"&gt;value&lt;/span&gt; ^
param); } } &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;object&lt;/span&gt; ConvertBack(&lt;span class="kwrd"&gt;object&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;,
Type targetType, &lt;span class="kwrd"&gt;object&lt;/span&gt; parameter, CultureInfo culture)
{ &lt;span class="kwrd"&gt;bool&lt;/span&gt; param = &lt;span class="kwrd"&gt;bool&lt;/span&gt;.Parse(parameter.ToString()); &lt;span class="kwrd"&gt;return&lt;/span&gt; !((&lt;span class="kwrd"&gt;bool&lt;/span&gt;)&lt;span class="kwrd"&gt;value&lt;/span&gt; ^
param); } }&lt;/pre&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=0c85f989-8cba-41cb-a55e-51922f004f14" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,0c85f989-8cba-41cb-a55e-51922f004f14.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=8a16cdc3-736b-4bc9-94d2-e49551124d35</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,8a16cdc3-736b-4bc9-94d2-e49551124d35.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,8a16cdc3-736b-4bc9-94d2-e49551124d35.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=8a16cdc3-736b-4bc9-94d2-e49551124d35</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://wpf.codeplex.com/Thread/View.aspx?ThreadId=44358" href="http://wpf.codeplex.com/Thread/View.aspx?ThreadId=44358">http://wpf.codeplex.com/Thread/View.aspx?ThreadId=44358</a>
        </p>
        <p>
          <a title="http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/03972347-969f-4704-9b54-2d13c265fb8f" href="http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/03972347-969f-4704-9b54-2d13c265fb8f">http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/03972347-969f-4704-9b54-2d13c265fb8f</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=8a16cdc3-736b-4bc9-94d2-e49551124d35" />
      </body>
      <title>WPF DataGrid Group Sub-Totals</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,8a16cdc3-736b-4bc9-94d2-e49551124d35.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,8a16cdc3-736b-4bc9-94d2-e49551124d35.aspx</link>
      <pubDate>Wed, 19 Aug 2009 14:23:25 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://wpf.codeplex.com/Thread/View.aspx?ThreadId=44358" href="http://wpf.codeplex.com/Thread/View.aspx?ThreadId=44358"&gt;http://wpf.codeplex.com/Thread/View.aspx?ThreadId=44358&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/03972347-969f-4704-9b54-2d13c265fb8f" href="http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/03972347-969f-4704-9b54-2d13c265fb8f"&gt;http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/03972347-969f-4704-9b54-2d13c265fb8f&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=8a16cdc3-736b-4bc9-94d2-e49551124d35" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,8a16cdc3-736b-4bc9-94d2-e49551124d35.aspx</comments>
      <category>DotNet / WPF;SDR</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=1d4c6ee1-f760-4b0f-a48a-b88da77af743</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,1d4c6ee1-f760-4b0f-a48a-b88da77af743.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,1d4c6ee1-f760-4b0f-a48a-b88da77af743.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=1d4c6ee1-f760-4b0f-a48a-b88da77af743</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
DataGrid Master/Details <a title="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/10/01/10798.aspx" href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/10/01/10798.aspx">http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/10/01/10798.aspx</a></p>
        <p>
Explicitly Load Related Objects <a title="http://msdn.microsoft.com/en-us/library/bb896249.aspx" href="http://msdn.microsoft.com/en-us/library/bb896249.aspx">http://msdn.microsoft.com/en-us/library/bb896249.aspx</a></p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=1d4c6ee1-f760-4b0f-a48a-b88da77af743" />
      </body>
      <title>WPF DataGrid and Entity Framework</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,1d4c6ee1-f760-4b0f-a48a-b88da77af743.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,1d4c6ee1-f760-4b0f-a48a-b88da77af743.aspx</link>
      <pubDate>Fri, 14 Aug 2009 21:30:51 GMT</pubDate>
      <description>&lt;p&gt;
DataGrid Master/Details &lt;a title="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/10/01/10798.aspx" href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/10/01/10798.aspx"&gt;http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/10/01/10798.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Explicitly Load Related Objects &lt;a title="http://msdn.microsoft.com/en-us/library/bb896249.aspx" href="http://msdn.microsoft.com/en-us/library/bb896249.aspx"&gt;http://msdn.microsoft.com/en-us/library/bb896249.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=1d4c6ee1-f760-4b0f-a48a-b88da77af743" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,1d4c6ee1-f760-4b0f-a48a-b88da77af743.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=dc1367b5-f22c-405f-a354-b5fbc6d32c9c</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,dc1367b5-f22c-405f-a354-b5fbc6d32c9c.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,dc1367b5-f22c-405f-a354-b5fbc6d32c9c.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=dc1367b5-f22c-405f-a354-b5fbc6d32c9c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://www.codeproject.com/KB/WPF/WpfMatrix.aspx" href="http://www.codeproject.com/KB/WPF/WpfMatrix.aspx">http://www.codeproject.com/KB/WPF/WpfMatrix.aspx</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=dc1367b5-f22c-405f-a354-b5fbc6d32c9c" />
      </body>
      <title>Data matrix by Josh Smith</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,dc1367b5-f22c-405f-a354-b5fbc6d32c9c.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,dc1367b5-f22c-405f-a354-b5fbc6d32c9c.aspx</link>
      <pubDate>Tue, 16 Jun 2009 15:46:47 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://www.codeproject.com/KB/WPF/WpfMatrix.aspx" href="http://www.codeproject.com/KB/WPF/WpfMatrix.aspx"&gt;http://www.codeproject.com/KB/WPF/WpfMatrix.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=dc1367b5-f22c-405f-a354-b5fbc6d32c9c" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,dc1367b5-f22c-405f-a354-b5fbc6d32c9c.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=088429b8-317e-4a55-8f75-f53b9d57a155</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,088429b8-317e-4a55-8f75-f53b9d57a155.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,088429b8-317e-4a55-8f75-f53b9d57a155.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=088429b8-317e-4a55-8f75-f53b9d57a155</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
 
</p>
        <p>
Sachabarber’s extension method <a title="http://sachabarber.net/?p=411" href="http://sachabarber.net/?p=411">http://sachabarber.net/?p=411</a> (Five
start solution)
</p>
        <p>
          <a title="http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/82c6451d-d37b-4380-aa11-d75c2f759ba7/" href="http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/82c6451d-d37b-4380-aa11-d75c2f759ba7/">http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/82c6451d-d37b-4380-aa11-d75c2f759ba7/</a>
        </p>
        <pre class="csharpcode">XAML:
&lt;Window x:Class=<span class="str">"WindowsApplication1.Window1"</span> xmlns=<span class="str">"http://schemas.microsoft.com/winfx/2006/xaml/presentation"</span> xmlns:x=<span class="str">"http://schemas.microsoft.com/winfx/2006/xaml"</span> Title=<span class="str">"Testing
BackgroundWorker"</span> Height=<span class="str">"300"</span> Width=<span class="str">"300"</span> &gt;
&lt;Grid&gt; &lt;Button HorizontalAlignment=<span class="str">"Left"</span> Margin=<span class="str">"8,25,0,0"</span> x:Name=<span class="str">"_btnStart"</span> VerticalAlignment=<span class="str">"Top"</span> Width=<span class="str">"87"</span> Height=<span class="str">"27"</span> Content=<span class="str">"Start"</span> Click=<span class="str">"StartWorker"</span>/&gt;
&lt;Button IsEnabled=<span class="str">"False"</span> Margin=<span class="str">"99,25,102,0"</span> x:Name=<span class="str">"_btnCancel"</span> VerticalAlignment=<span class="str">"Top"</span> Height=<span class="str">"27"</span> Content=<span class="str">"Cancel"</span> Click=<span class="str">"CancelWorker"</span>/&gt;
&lt;ProgressBar Margin=<span class="str">"8,0,8,107"</span> x:Name=<span class="str">"_progressBar"</span> VerticalAlignment=<span class="str">"Bottom"</span> Height=<span class="str">"23"</span> Maximum=<span class="str">"10"</span>/&gt;
&lt;/Grid&gt; &lt;/Window&gt; </pre>
        <pre class="csharpcode">C#:
<span class="kwrd">using</span> System.ComponentModel; <span class="kwrd">using</span> System.Threading; <span class="kwrd">using</span> System.Windows; <span class="kwrd">namespace</span> WindowsApplication1
{ <span class="rem">/// &lt;summary&gt; </span><span class="rem">/// Interaction
logic for Window1.xaml </span><span class="rem">/// &lt;/summary&gt; </span><span class="kwrd">public</span><span class="kwrd">partial</span><span class="kwrd">class</span> Window1
: System.Windows.Window { <span class="kwrd">private</span> BackgroundWorker _worker; <span class="kwrd">public</span> Window1()
{ InitializeComponent(); } <span class="kwrd">private</span><span class="kwrd">void</span> StartWorker(<span class="kwrd">object</span> sender,
RoutedEventArgs e) { <span class="kwrd">int</span> N = 10; _worker = <span class="kwrd">new</span> BackgroundWorker();
_worker.WorkerReportsProgress = <span class="kwrd">true</span>; _worker.WorkerSupportsCancellation
= <span class="kwrd">true</span>; _worker.DoWork += <span class="kwrd">delegate</span>(<span class="kwrd">object</span> s,
DoWorkEventArgs args) { BackgroundWorker worker = s <span class="kwrd">as</span> BackgroundWorker; <span class="kwrd">for</span> (<span class="kwrd">int</span> i
= 0; i &lt; N; i++) { <span class="kwrd">if</span> (worker.CancellationPending) {
args.Cancel = <span class="kwrd">true</span>; <span class="kwrd">return</span>; }
Thread.Sleep(1000); worker.ReportProgress(i + 1); } }; _worker.ProgressChanged += <span class="kwrd">delegate</span>(<span class="kwrd">object</span> s,
ProgressChangedEventArgs args) { _progressBar.Value = args.ProgressPercentage; };
_worker.RunWorkerCompleted += <span class="kwrd">delegate</span>(<span class="kwrd">object</span> s,
RunWorkerCompletedEventArgs args) { _btnStart.IsEnabled = <span class="kwrd">true</span>;
_btnCancel.IsEnabled = <span class="kwrd">false</span>; _progressBar.Value = 0; };
_worker.RunWorkerAsync(); _btnStart.IsEnabled = <span class="kwrd">false</span>; _btnCancel.IsEnabled
= <span class="kwrd">true</span>; } <span class="kwrd">private</span><span class="kwrd">void</span> CancelWorker(<span class="kwrd">object</span> sender,
RoutedEventArgs e) { _worker.CancelAsync(); } } } </pre>
        <style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=088429b8-317e-4a55-8f75-f53b9d57a155" />
      </body>
      <title>backgroundworker example</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,088429b8-317e-4a55-8f75-f53b9d57a155.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,088429b8-317e-4a55-8f75-f53b9d57a155.aspx</link>
      <pubDate>Wed, 10 Jun 2009 18:00:32 GMT</pubDate>
      <description>&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Sachabarber’s extension method &lt;a title="http://sachabarber.net/?p=411" href="http://sachabarber.net/?p=411"&gt;http://sachabarber.net/?p=411&lt;/a&gt; (Five
start solution)
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/82c6451d-d37b-4380-aa11-d75c2f759ba7/" href="http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/82c6451d-d37b-4380-aa11-d75c2f759ba7/"&gt;http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/82c6451d-d37b-4380-aa11-d75c2f759ba7/&lt;/a&gt;
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;XAML:
&amp;lt;Window x:Class=&lt;span class="str"&gt;"WindowsApplication1.Window1"&lt;/span&gt; xmlns=&lt;span class="str"&gt;"http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;/span&gt; xmlns:x=&lt;span class="str"&gt;"http://schemas.microsoft.com/winfx/2006/xaml"&lt;/span&gt; Title=&lt;span class="str"&gt;"Testing
BackgroundWorker"&lt;/span&gt; Height=&lt;span class="str"&gt;"300"&lt;/span&gt; Width=&lt;span class="str"&gt;"300"&lt;/span&gt; &amp;gt;
&amp;lt;Grid&amp;gt; &amp;lt;Button HorizontalAlignment=&lt;span class="str"&gt;"Left"&lt;/span&gt; Margin=&lt;span class="str"&gt;"8,25,0,0"&lt;/span&gt; x:Name=&lt;span class="str"&gt;"_btnStart"&lt;/span&gt; VerticalAlignment=&lt;span class="str"&gt;"Top"&lt;/span&gt; Width=&lt;span class="str"&gt;"87"&lt;/span&gt; Height=&lt;span class="str"&gt;"27"&lt;/span&gt; Content=&lt;span class="str"&gt;"Start"&lt;/span&gt; Click=&lt;span class="str"&gt;"StartWorker"&lt;/span&gt;/&amp;gt;
&amp;lt;Button IsEnabled=&lt;span class="str"&gt;"False"&lt;/span&gt; Margin=&lt;span class="str"&gt;"99,25,102,0"&lt;/span&gt; x:Name=&lt;span class="str"&gt;"_btnCancel"&lt;/span&gt; VerticalAlignment=&lt;span class="str"&gt;"Top"&lt;/span&gt; Height=&lt;span class="str"&gt;"27"&lt;/span&gt; Content=&lt;span class="str"&gt;"Cancel"&lt;/span&gt; Click=&lt;span class="str"&gt;"CancelWorker"&lt;/span&gt;/&amp;gt;
&amp;lt;ProgressBar Margin=&lt;span class="str"&gt;"8,0,8,107"&lt;/span&gt; x:Name=&lt;span class="str"&gt;"_progressBar"&lt;/span&gt; VerticalAlignment=&lt;span class="str"&gt;"Bottom"&lt;/span&gt; Height=&lt;span class="str"&gt;"23"&lt;/span&gt; Maximum=&lt;span class="str"&gt;"10"&lt;/span&gt;/&amp;gt;
&amp;lt;/Grid&amp;gt; &amp;lt;/Window&amp;gt; &lt;/pre&gt;
&lt;pre class="csharpcode"&gt;C#:
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.ComponentModel; &lt;span class="kwrd"&gt;using&lt;/span&gt; System.Threading; &lt;span class="kwrd"&gt;using&lt;/span&gt; System.Windows; &lt;span class="kwrd"&gt;namespace&lt;/span&gt; WindowsApplication1
{ &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt; &lt;/span&gt; &lt;span class="rem"&gt;/// Interaction
logic for Window1.xaml &lt;/span&gt; &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt; &lt;/span&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Window1
: System.Windows.Window { &lt;span class="kwrd"&gt;private&lt;/span&gt; BackgroundWorker _worker; &lt;span class="kwrd"&gt;public&lt;/span&gt; Window1()
{ InitializeComponent(); } &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; StartWorker(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender,
RoutedEventArgs e) { &lt;span class="kwrd"&gt;int&lt;/span&gt; N = 10; _worker = &lt;span class="kwrd"&gt;new&lt;/span&gt; BackgroundWorker();
_worker.WorkerReportsProgress = &lt;span class="kwrd"&gt;true&lt;/span&gt;; _worker.WorkerSupportsCancellation
= &lt;span class="kwrd"&gt;true&lt;/span&gt;; _worker.DoWork += &lt;span class="kwrd"&gt;delegate&lt;/span&gt;(&lt;span class="kwrd"&gt;object&lt;/span&gt; s,
DoWorkEventArgs args) { BackgroundWorker worker = s &lt;span class="kwrd"&gt;as&lt;/span&gt; BackgroundWorker; &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i
= 0; i &amp;lt; N; i++) { &lt;span class="kwrd"&gt;if&lt;/span&gt; (worker.CancellationPending) {
args.Cancel = &lt;span class="kwrd"&gt;true&lt;/span&gt;; &lt;span class="kwrd"&gt;return&lt;/span&gt;; }
Thread.Sleep(1000); worker.ReportProgress(i + 1); } }; _worker.ProgressChanged += &lt;span class="kwrd"&gt;delegate&lt;/span&gt;(&lt;span class="kwrd"&gt;object&lt;/span&gt; s,
ProgressChangedEventArgs args) { _progressBar.Value = args.ProgressPercentage; };
_worker.RunWorkerCompleted += &lt;span class="kwrd"&gt;delegate&lt;/span&gt;(&lt;span class="kwrd"&gt;object&lt;/span&gt; s,
RunWorkerCompletedEventArgs args) { _btnStart.IsEnabled = &lt;span class="kwrd"&gt;true&lt;/span&gt;;
_btnCancel.IsEnabled = &lt;span class="kwrd"&gt;false&lt;/span&gt;; _progressBar.Value = 0; };
_worker.RunWorkerAsync(); _btnStart.IsEnabled = &lt;span class="kwrd"&gt;false&lt;/span&gt;; _btnCancel.IsEnabled
= &lt;span class="kwrd"&gt;true&lt;/span&gt;; } &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; CancelWorker(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender,
RoutedEventArgs e) { _worker.CancelAsync(); } } } &lt;/pre&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=088429b8-317e-4a55-8f75-f53b9d57a155" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,088429b8-317e-4a55-8f75-f53b9d57a155.aspx</comments>
      <category>DotNet;DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=a0f634d0-db6e-4d6c-a3ef-d2f7e5a3e1c4</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,a0f634d0-db6e-4d6c-a3ef-d2f7e5a3e1c4.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,a0f634d0-db6e-4d6c-a3ef-d2f7e5a3e1c4.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=a0f634d0-db6e-4d6c-a3ef-d2f7e5a3e1c4</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Coroutines with IEnumnberable and yield return <a title="http://incrediblejourneysintotheknown.blogspot.com/2008/04/coroutines-with-ienumerable-and-yield.html" href="http://incrediblejourneysintotheknown.blogspot.com/2008/04/coroutines-with-ienumerable-and-yield.html">http://incrediblejourneysintotheknown.blogspot.com/2008/04/coroutines-with-ienumerable-and-yield.html</a></p>
        <p>
Forcing Update of UI before my function exists <a title="http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/6fce9b7b-4a13-4c8d-8c3e-562667851baa/" href="http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/6fce9b7b-4a13-4c8d-8c3e-562667851baa/">http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/6fce9b7b-4a13-4c8d-8c3e-562667851baa/</a></p>
        <p>
“
</p>
        <pre class="csharpcode">
          <em>An even easier method has just occurred to me: just call <span class="kwrd">this</span> method
after setting UI properties: <span class="kwrd">void</span> AllowUIToUpdate() { DispatcherFrame
frame = <span class="kwrd">new</span> DispatcherFrame(); Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Render, <span class="kwrd">new</span> DispatcherOperationCallback(<span class="kwrd">delegate</span>(<span class="kwrd">object</span> parameter)
{ frame.Continue = <span class="kwrd">false</span>; <span class="kwrd">return</span><span class="kwrd">null</span>;
}), <span class="kwrd">null</span>); Dispatcher.PushFrame(frame); } If my understanding
of DispatcherPriority <span class="kwrd">is</span> correct, <span class="kwrd">this</span> will
allow all render level messages to be processed, and will then <span class="kwrd">return</span>.
This feels a little like a WPF equivalent of Application.DoEvents, and I know their
are dangers with that. Anybody with a deeper understanding of WPF threading got any
thoughts on <span class="kwrd">this</span>?</em>
        </pre>
        <style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
        <p>
          <em>“</em>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=a0f634d0-db6e-4d6c-a3ef-d2f7e5a3e1c4" />
      </body>
      <title>WPF UI Update</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,a0f634d0-db6e-4d6c-a3ef-d2f7e5a3e1c4.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,a0f634d0-db6e-4d6c-a3ef-d2f7e5a3e1c4.aspx</link>
      <pubDate>Tue, 09 Jun 2009 17:57:05 GMT</pubDate>
      <description>&lt;p&gt;
Coroutines with IEnumnberable and yield return &lt;a title="http://incrediblejourneysintotheknown.blogspot.com/2008/04/coroutines-with-ienumerable-and-yield.html" href="http://incrediblejourneysintotheknown.blogspot.com/2008/04/coroutines-with-ienumerable-and-yield.html"&gt;http://incrediblejourneysintotheknown.blogspot.com/2008/04/coroutines-with-ienumerable-and-yield.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Forcing Update of UI before my function exists &lt;a title="http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/6fce9b7b-4a13-4c8d-8c3e-562667851baa/" href="http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/6fce9b7b-4a13-4c8d-8c3e-562667851baa/"&gt;http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/6fce9b7b-4a13-4c8d-8c3e-562667851baa/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
“
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&lt;em&gt;An even easier method has just occurred to me: just call &lt;span class="kwrd"&gt;this&lt;/span&gt; method
after setting UI properties: &lt;span class="kwrd"&gt;void&lt;/span&gt; AllowUIToUpdate() { DispatcherFrame
frame = &lt;span class="kwrd"&gt;new&lt;/span&gt; DispatcherFrame(); Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Render, &lt;span class="kwrd"&gt;new&lt;/span&gt; DispatcherOperationCallback(&lt;span class="kwrd"&gt;delegate&lt;/span&gt;(&lt;span class="kwrd"&gt;object&lt;/span&gt; parameter)
{ frame.Continue = &lt;span class="kwrd"&gt;false&lt;/span&gt;; &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;null&lt;/span&gt;;
}), &lt;span class="kwrd"&gt;null&lt;/span&gt;); Dispatcher.PushFrame(frame); } If my understanding
of DispatcherPriority &lt;span class="kwrd"&gt;is&lt;/span&gt; correct, &lt;span class="kwrd"&gt;this&lt;/span&gt; will
allow all render level messages to be processed, and will then &lt;span class="kwrd"&gt;return&lt;/span&gt;.
This feels a little like a WPF equivalent of Application.DoEvents, and I know their
are dangers with that. Anybody with a deeper understanding of WPF threading got any
thoughts on &lt;span class="kwrd"&gt;this&lt;/span&gt;?&lt;/em&gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
&lt;p&gt;
&lt;em&gt;“&lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=a0f634d0-db6e-4d6c-a3ef-d2f7e5a3e1c4" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,a0f634d0-db6e-4d6c-a3ef-d2f7e5a3e1c4.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=436c0d08-206e-409a-9447-90f1dd227fb6</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,436c0d08-206e-409a-9447-90f1dd227fb6.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,436c0d08-206e-409a-9447-90f1dd227fb6.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=436c0d08-206e-409a-9447-90f1dd227fb6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://www.blender.org/" href="http://www.blender.org/">http://www.blender.org/</a>
        </p>
        <p>
          <a title="http://www.codeplex.com/xamlexporter" href="http://www.codeplex.com/xamlexporter">http://www.codeplex.com/xamlexporter</a>
        </p>
        <p>
          <a title="http://www.erain.com/products/zam3d/screenshots/" href="http://www.erain.com/products/zam3d/screenshots/">http://www.erain.com/products/zam3d/screenshots/</a>
        </p>
        <p>
          <a title="http://www.erain.com/products/zam3d/Examples/worldclock/worldclock.asp" href="http://www.erain.com/products/zam3d/Examples/worldclock/worldclock.asp">http://www.erain.com/products/zam3d/Examples/worldclock/worldclock.asp</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=436c0d08-206e-409a-9447-90f1dd227fb6" />
      </body>
      <title>Blender and xaml export tool</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,436c0d08-206e-409a-9447-90f1dd227fb6.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,436c0d08-206e-409a-9447-90f1dd227fb6.aspx</link>
      <pubDate>Fri, 05 Jun 2009 15:07:24 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://www.blender.org/" href="http://www.blender.org/"&gt;http://www.blender.org/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.codeplex.com/xamlexporter" href="http://www.codeplex.com/xamlexporter"&gt;http://www.codeplex.com/xamlexporter&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.erain.com/products/zam3d/screenshots/" href="http://www.erain.com/products/zam3d/screenshots/"&gt;http://www.erain.com/products/zam3d/screenshots/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.erain.com/products/zam3d/Examples/worldclock/worldclock.asp" href="http://www.erain.com/products/zam3d/Examples/worldclock/worldclock.asp"&gt;http://www.erain.com/products/zam3d/Examples/worldclock/worldclock.asp&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=436c0d08-206e-409a-9447-90f1dd227fb6" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,436c0d08-206e-409a-9447-90f1dd227fb6.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=6d6c18f2-60d9-4257-bb00-a20f95ae9794</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,6d6c18f2-60d9-4257-bb00-a20f95ae9794.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,6d6c18f2-60d9-4257-bb00-a20f95ae9794.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=6d6c18f2-60d9-4257-bb00-a20f95ae9794</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Home <a title="http://expression.microsoft.com/en-us/default.aspx" href="http://expression.microsoft.com/en-us/default.aspx">http://expression.microsoft.com/en-us/default.aspx</a></p>
        <p>
Expression Design tutorial <a title="http://www.lynda.com/home/DisplayCourse.aspx?lpk2=339" href="http://www.lynda.com/home/DisplayCourse.aspx?lpk2=339">http://www.lynda.com/home/DisplayCourse.aspx?lpk2=339</a></p>
        <p>
Integrating 3D into Expression Blend with ZAM 3D <a title="http://expression.microsoft.com/en-us/dd567847.aspx" href="http://expression.microsoft.com/en-us/dd567847.aspx">http://expression.microsoft.com/en-us/dd567847.aspx</a></p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=6d6c18f2-60d9-4257-bb00-a20f95ae9794" />
      </body>
      <title>Microsoft Expression</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,6d6c18f2-60d9-4257-bb00-a20f95ae9794.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,6d6c18f2-60d9-4257-bb00-a20f95ae9794.aspx</link>
      <pubDate>Tue, 02 Jun 2009 18:05:49 GMT</pubDate>
      <description>&lt;p&gt;
Home &lt;a title="http://expression.microsoft.com/en-us/default.aspx" href="http://expression.microsoft.com/en-us/default.aspx"&gt;http://expression.microsoft.com/en-us/default.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Expression Design tutorial &lt;a title="http://www.lynda.com/home/DisplayCourse.aspx?lpk2=339" href="http://www.lynda.com/home/DisplayCourse.aspx?lpk2=339"&gt;http://www.lynda.com/home/DisplayCourse.aspx?lpk2=339&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Integrating 3D into Expression Blend with ZAM 3D &lt;a title="http://expression.microsoft.com/en-us/dd567847.aspx" href="http://expression.microsoft.com/en-us/dd567847.aspx"&gt;http://expression.microsoft.com/en-us/dd567847.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=6d6c18f2-60d9-4257-bb00-a20f95ae9794" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,6d6c18f2-60d9-4257-bb00-a20f95ae9794.aspx</comments>
      <category>DotNet;DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=094a5266-a8cb-4d65-9bf1-65af1725d638</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,094a5266-a8cb-4d65-9bf1-65af1725d638.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,094a5266-a8cb-4d65-9bf1-65af1725d638.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=094a5266-a8cb-4d65-9bf1-65af1725d638</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://marlongrech.wordpress.com/2008/12/13/attachedcommandbehavior-v2-aka-acb/" href="http://marlongrech.wordpress.com/2008/12/13/attachedcommandbehavior-v2-aka-acb/">http://marlongrech.wordpress.com/2008/12/13/attachedcommandbehavior-v2-aka-acb/</a>
        </p>
        <p>
2 new features 
</p>
        <p>
- Support for Collection of binding to commands<br />
- Support for Light weight Commands or as I call them Action
</p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=094a5266-a8cb-4d65-9bf1-65af1725d638" />
      </body>
      <title>AttachedCommandBehavior V2 aka ACB</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,094a5266-a8cb-4d65-9bf1-65af1725d638.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,094a5266-a8cb-4d65-9bf1-65af1725d638.aspx</link>
      <pubDate>Fri, 29 May 2009 14:56:55 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://marlongrech.wordpress.com/2008/12/13/attachedcommandbehavior-v2-aka-acb/" href="http://marlongrech.wordpress.com/2008/12/13/attachedcommandbehavior-v2-aka-acb/"&gt;http://marlongrech.wordpress.com/2008/12/13/attachedcommandbehavior-v2-aka-acb/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
2 new features 
&lt;p&gt;
- Support for Collection of binding to commands&lt;br&gt;
- Support for Light weight Commands or as I call them Action
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=094a5266-a8cb-4d65-9bf1-65af1725d638" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,094a5266-a8cb-4d65-9bf1-65af1725d638.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=48a41808-8afa-4479-89d9-cfeb7b75418f</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,48a41808-8afa-4479-89d9-cfeb7b75418f.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,48a41808-8afa-4479-89d9-cfeb7b75418f.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=48a41808-8afa-4479-89d9-cfeb7b75418f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://www.ageektrapped.com/blog/staticresource-does-not-mean-static/" href="http://www.ageektrapped.com/blog/staticresource-does-not-mean-static/">http://www.ageektrapped.com/blog/staticresource-does-not-mean-static/</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=48a41808-8afa-4479-89d9-cfeb7b75418f" />
      </body>
      <title>Static Resource does not mean static</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,48a41808-8afa-4479-89d9-cfeb7b75418f.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,48a41808-8afa-4479-89d9-cfeb7b75418f.aspx</link>
      <pubDate>Thu, 28 May 2009 19:28:27 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://www.ageektrapped.com/blog/staticresource-does-not-mean-static/" href="http://www.ageektrapped.com/blog/staticresource-does-not-mean-static/"&gt;http://www.ageektrapped.com/blog/staticresource-does-not-mean-static/&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=48a41808-8afa-4479-89d9-cfeb7b75418f" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,48a41808-8afa-4479-89d9-cfeb7b75418f.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=31629a7a-1793-437d-b819-6b17df41f2a0</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,31629a7a-1793-437d-b819-6b17df41f2a0.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,31629a7a-1793-437d-b819-6b17df41f2a0.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=31629a7a-1793-437d-b819-6b17df41f2a0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://wpfwonderland.wordpress.com/2007/08/11/mixing-external-mergeddictionaries-with-local-resources-in-appxaml/" href="http://wpfwonderland.wordpress.com/2007/08/11/mixing-external-mergeddictionaries-with-local-resources-in-appxaml/">http://wpfwonderland.wordpress.com/2007/08/11/mixing-external-mergeddictionaries-with-local-resources-in-appxaml/</a>
        </p>
        <h5>Adding local application resources
</h5>
        <p>
Even though it is easy to add external resources it’s likely that you’ll want to have
a style or other resource that you don’t intend to shared across applications. 
You could isolated these resources within a single page (Page.Resources) or element
(DockPanel.Resources)  But what if you want to add  them to &lt;<strong>Application.Resources&gt; </strong>tag? 
You can do it as long as you know the correct location. They have to go between the
&lt;/ResourceDictionary.MergedDictionaries&gt; and &lt;/ResourceDictionary&gt; tags.
</p>
        <pre>    &lt;Application.Resources&gt;
      &lt;ResourceDictionary&gt;
        &lt;ResourceDictionary.MergedDictionaries&gt;
          &lt;ResourceDictionary Source="WorkshopHelpers/MainResources.xaml"/&gt;
        &lt;/ResourceDictionary.MergedDictionaries&gt;
       <font color="#808000"> &lt;!--
Place here...--&gt;</font> &lt;Style TargetType="Rectangle" &gt; &lt;Setter Property="Width"
Value="100"/&gt; &lt;Setter Property="Height" Value="80"/&gt; &lt;/Style&gt; &lt;/ResourceDictionary&gt;
&lt;/Application.Resources&gt; &lt;/Application&gt; </pre>
        <p>
-Walt Ritscher <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=31629a7a-1793-437d-b819-6b17df41f2a0" /></p>
      </body>
      <title>Adding local application resources</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,31629a7a-1793-437d-b819-6b17df41f2a0.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,31629a7a-1793-437d-b819-6b17df41f2a0.aspx</link>
      <pubDate>Thu, 28 May 2009 17:25:41 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://wpfwonderland.wordpress.com/2007/08/11/mixing-external-mergeddictionaries-with-local-resources-in-appxaml/" href="http://wpfwonderland.wordpress.com/2007/08/11/mixing-external-mergeddictionaries-with-local-resources-in-appxaml/"&gt;http://wpfwonderland.wordpress.com/2007/08/11/mixing-external-mergeddictionaries-with-local-resources-in-appxaml/&lt;/a&gt;
&lt;/p&gt;
&lt;h5&gt;Adding local application resources
&lt;/h5&gt;
&lt;p&gt;
Even though it is easy to add external resources it’s likely that you’ll want to have
a style or other resource that you don’t intend to shared across applications.&amp;nbsp;
You could isolated these resources within a single page (Page.Resources) or element
(DockPanel.Resources)&amp;nbsp; But what if you want to add&amp;nbsp; them to &amp;lt;&lt;strong&gt;Application.Resources&amp;gt; &lt;/strong&gt;tag?&amp;nbsp;
You can do it as long as you know the correct location. They have to go between the
&amp;lt;/ResourceDictionary.MergedDictionaries&amp;gt; and &amp;lt;/ResourceDictionary&amp;gt; tags.&lt;pre&gt;    &amp;lt;Application.Resources&amp;gt;
      &amp;lt;ResourceDictionary&amp;gt;
        &amp;lt;ResourceDictionary.MergedDictionaries&amp;gt;
          &amp;lt;ResourceDictionary Source="WorkshopHelpers/MainResources.xaml"/&amp;gt;
        &amp;lt;/ResourceDictionary.MergedDictionaries&amp;gt;
       &lt;font color="#808000"&gt; &amp;lt;!--
Place here...--&amp;gt;&lt;/font&gt; &amp;lt;Style TargetType="Rectangle" &amp;gt; &amp;lt;Setter Property="Width"
Value="100"/&amp;gt; &amp;lt;Setter Property="Height" Value="80"/&amp;gt; &amp;lt;/Style&amp;gt; &amp;lt;/ResourceDictionary&amp;gt;
&amp;lt;/Application.Resources&amp;gt; &amp;lt;/Application&amp;gt; &lt;/pre&gt;
&lt;p&gt;
-Walt Ritscher &lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=31629a7a-1793-437d-b819-6b17df41f2a0" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,31629a7a-1793-437d-b819-6b17df41f2a0.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=0510c8d4-fd57-4580-8875-1ca6c3153960</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,0510c8d4-fd57-4580-8875-1ca6c3153960.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,0510c8d4-fd57-4580-8875-1ca6c3153960.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=0510c8d4-fd57-4580-8875-1ca6c3153960</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 650px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb">
          <pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb">  1: m_DispatcherTimer = <span style="color: #0000ff">new</span> DispatcherTimer() </pre>
          <pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff">  2: {
</pre>
          <pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb">  3: Interval = TimeSpan.FromSeconds(0.25),
</pre>
          <pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff">  4: IsEnabled = <span style="color: #0000ff">true</span></pre>
          <pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb">  5: };
</pre>
          <pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff">  6: 
</pre>
          <pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb">  7: m_DispatcherTimer.Tick += <span style="color: #0000ff">delegate</span></pre>
          <pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff">  8: {
</pre>
          <pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb">  9: CommandManager.InvalidateRequerySuggested();
</pre>
          <pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"> 10: };
</pre>
          <pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"> 11: </pre>
        </pre>
        <p>
          <a title="http://robburke.net/2008/04/23/wpf-command-pattern-when-does-it-query-canexecute/" href="http://robburke.net/2008/04/23/wpf-command-pattern-when-does-it-query-canexecute/">http://robburke.net/2008/04/23/wpf-command-pattern-when-does-it-query-canexecute/</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=0510c8d4-fd57-4580-8875-1ca6c3153960" />
      </body>
      <title>WPF Commanding - When do Commands re-evaluate their CanExecute method?</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,0510c8d4-fd57-4580-8875-1ca6c3153960.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,0510c8d4-fd57-4580-8875-1ca6c3153960.aspx</link>
      <pubDate>Thu, 28 May 2009 05:47:02 GMT</pubDate>
      <description>&lt;pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 650px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt;  1: m_DispatcherTimer = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; DispatcherTimer() &lt;/pre&gt;
&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;  2: {
&lt;/pre&gt;
&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt;  3: Interval = TimeSpan.FromSeconds(0.25),
&lt;/pre&gt;
&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;  4: IsEnabled = &lt;span style="color: #0000ff"&gt;true&lt;/span&gt; &lt;/pre&gt;
&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt;  5: };
&lt;/pre&gt;
&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;  6: 
&lt;/pre&gt;
&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt;  7: m_DispatcherTimer.Tick += &lt;span style="color: #0000ff"&gt;delegate&lt;/span&gt; &lt;/pre&gt;
&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt;  8: {
&lt;/pre&gt;
&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt;  9: CommandManager.InvalidateRequerySuggested();
&lt;/pre&gt;
&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff"&gt; 10: };
&lt;/pre&gt;
&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt; 11: &lt;/pre&gt;
&lt;/pre&gt;
&lt;p&gt;
&lt;a title="http://robburke.net/2008/04/23/wpf-command-pattern-when-does-it-query-canexecute/" href="http://robburke.net/2008/04/23/wpf-command-pattern-when-does-it-query-canexecute/"&gt;http://robburke.net/2008/04/23/wpf-command-pattern-when-does-it-query-canexecute/&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=0510c8d4-fd57-4580-8875-1ca6c3153960" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,0510c8d4-fd57-4580-8875-1ca6c3153960.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=f2accfd0-f686-4283-a14f-a89efd07f5d6</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,f2accfd0-f686-4283-a14f-a89efd07f5d6.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,f2accfd0-f686-4283-a14f-a89efd07f5d6.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=f2accfd0-f686-4283-a14f-a89efd07f5d6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://www.hardcodet.net/2009/01/combinding-wpf-validation-rules-and-idataerrorinfo-to-validate-conversion-errors" href="http://www.hardcodet.net/2009/01/combinding-wpf-validation-rules-and-idataerrorinfo-to-validate-conversion-errors">http://www.hardcodet.net/2009/01/combinding-wpf-validation-rules-and-idataerrorinfo-to-validate-conversion-errors</a>
        </p>
        <p>
Related:
</p>
        <p>
          <a title="http://karlshifflett.wordpress.com/mvvm/input-validation-ui-exceptions-model-validation-errors/" href="http://karlshifflett.wordpress.com/mvvm/input-validation-ui-exceptions-model-validation-errors/">http://karlshifflett.wordpress.com/mvvm/input-validation-ui-exceptions-model-validation-errors/</a>
        </p>
        <p>
          <a title="http://www.hardcodet.net/2008/04/wpf-custom-binding-class" href="http://www.hardcodet.net/2008/04/wpf-custom-binding-class">http://www.hardcodet.net/2008/04/wpf-custom-binding-class</a>
        </p>
        <p>
          <a title="http://joshsmithonwpf.wordpress.com/2008/11/14/using-a-viewmodel-to-provide-meaningful-validation-error-messages/" href="http://joshsmithonwpf.wordpress.com/2008/11/14/using-a-viewmodel-to-provide-meaningful-validation-error-messages/">http://joshsmithonwpf.wordpress.com/2008/11/14/using-a-viewmodel-to-provide-meaningful-validation-error-messages/</a>
        </p>
        <p>
 
</p>
        <p>
          <a title="http://blogs.msdn.com/wpfsdk/archive/2007/01/16/someone-s-been-sitting-in-my-chair-property-changed-detection-mechanisms-in-wpf.aspx" href="http://blogs.msdn.com/wpfsdk/archive/2007/01/16/someone-s-been-sitting-in-my-chair-property-changed-detection-mechanisms-in-wpf.aspx">http://blogs.msdn.com/wpfsdk/archive/2007/01/16/someone-s-been-sitting-in-my-chair-property-changed-detection-mechanisms-in-wpf.aspx</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=f2accfd0-f686-4283-a14f-a89efd07f5d6" />
      </body>
      <title>Combining WPF Validation Rules and IDataErrorInfo to Resolve Conversion Errors</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,f2accfd0-f686-4283-a14f-a89efd07f5d6.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,f2accfd0-f686-4283-a14f-a89efd07f5d6.aspx</link>
      <pubDate>Tue, 26 May 2009 18:58:45 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://www.hardcodet.net/2009/01/combinding-wpf-validation-rules-and-idataerrorinfo-to-validate-conversion-errors" href="http://www.hardcodet.net/2009/01/combinding-wpf-validation-rules-and-idataerrorinfo-to-validate-conversion-errors"&gt;http://www.hardcodet.net/2009/01/combinding-wpf-validation-rules-and-idataerrorinfo-to-validate-conversion-errors&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Related:
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://karlshifflett.wordpress.com/mvvm/input-validation-ui-exceptions-model-validation-errors/" href="http://karlshifflett.wordpress.com/mvvm/input-validation-ui-exceptions-model-validation-errors/"&gt;http://karlshifflett.wordpress.com/mvvm/input-validation-ui-exceptions-model-validation-errors/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.hardcodet.net/2008/04/wpf-custom-binding-class" href="http://www.hardcodet.net/2008/04/wpf-custom-binding-class"&gt;http://www.hardcodet.net/2008/04/wpf-custom-binding-class&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://joshsmithonwpf.wordpress.com/2008/11/14/using-a-viewmodel-to-provide-meaningful-validation-error-messages/" href="http://joshsmithonwpf.wordpress.com/2008/11/14/using-a-viewmodel-to-provide-meaningful-validation-error-messages/"&gt;http://joshsmithonwpf.wordpress.com/2008/11/14/using-a-viewmodel-to-provide-meaningful-validation-error-messages/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://blogs.msdn.com/wpfsdk/archive/2007/01/16/someone-s-been-sitting-in-my-chair-property-changed-detection-mechanisms-in-wpf.aspx" href="http://blogs.msdn.com/wpfsdk/archive/2007/01/16/someone-s-been-sitting-in-my-chair-property-changed-detection-mechanisms-in-wpf.aspx"&gt;http://blogs.msdn.com/wpfsdk/archive/2007/01/16/someone-s-been-sitting-in-my-chair-property-changed-detection-mechanisms-in-wpf.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=f2accfd0-f686-4283-a14f-a89efd07f5d6" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,f2accfd0-f686-4283-a14f-a89efd07f5d6.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=91f95bf5-c426-4e70-96fe-a3e31efb188b</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,91f95bf5-c426-4e70-96fe-a3e31efb188b.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,91f95bf5-c426-4e70-96fe-a3e31efb188b.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=91f95bf5-c426-4e70-96fe-a3e31efb188b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Part1: <a title="http://blogs.msdn.com/wpfsdk/archive/2007/03/16/how-do-i-programmatically-interact-with-template-generated-elements-part-i.aspx" href="http://blogs.msdn.com/wpfsdk/archive/2007/03/16/how-do-i-programmatically-interact-with-template-generated-elements-part-i.aspx">http://blogs.msdn.com/wpfsdk/archive/2007/03/16/how-do-i-programmatically-interact-with-template-generated-elements-part-i.aspx</a></p>
        <p>
part2: <a title="http://blogs.msdn.com/wpfsdk/archive/2007/04/16/how-do-i-programmatically-interact-with-template-generated-elements-part-ii.aspx" href="http://blogs.msdn.com/wpfsdk/archive/2007/04/16/how-do-i-programmatically-interact-with-template-generated-elements-part-ii.aspx">http://blogs.msdn.com/wpfsdk/archive/2007/04/16/how-do-i-programmatically-interact-with-template-generated-elements-part-ii.aspx</a></p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=91f95bf5-c426-4e70-96fe-a3e31efb188b" />
      </body>
      <title>How do I programmatically interact with template-generated elements</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,91f95bf5-c426-4e70-96fe-a3e31efb188b.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,91f95bf5-c426-4e70-96fe-a3e31efb188b.aspx</link>
      <pubDate>Tue, 26 May 2009 18:57:09 GMT</pubDate>
      <description>&lt;p&gt;
Part1: &lt;a title="http://blogs.msdn.com/wpfsdk/archive/2007/03/16/how-do-i-programmatically-interact-with-template-generated-elements-part-i.aspx" href="http://blogs.msdn.com/wpfsdk/archive/2007/03/16/how-do-i-programmatically-interact-with-template-generated-elements-part-i.aspx"&gt;http://blogs.msdn.com/wpfsdk/archive/2007/03/16/how-do-i-programmatically-interact-with-template-generated-elements-part-i.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
part2: &lt;a title="http://blogs.msdn.com/wpfsdk/archive/2007/04/16/how-do-i-programmatically-interact-with-template-generated-elements-part-ii.aspx" href="http://blogs.msdn.com/wpfsdk/archive/2007/04/16/how-do-i-programmatically-interact-with-template-generated-elements-part-ii.aspx"&gt;http://blogs.msdn.com/wpfsdk/archive/2007/04/16/how-do-i-programmatically-interact-with-template-generated-elements-part-ii.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=91f95bf5-c426-4e70-96fe-a3e31efb188b" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,91f95bf5-c426-4e70-96fe-a3e31efb188b.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=50791893-ff4b-48e7-8ea7-db8ddb074ebe</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,50791893-ff4b-48e7-8ea7-db8ddb074ebe.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,50791893-ff4b-48e7-8ea7-db8ddb074ebe.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=50791893-ff4b-48e7-8ea7-db8ddb074ebe</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://www.xamltemplates.net/" href="http://www.xamltemplates.net/">http://www.xamltemplates.net/</a>
        </p>
        <p>
          <a title="http://www.nukeation.com/" href="http://www.nukeation.com/">http://www.nukeation.com/</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=50791893-ff4b-48e7-8ea7-db8ddb074ebe" />
      </body>
      <title>WPF Theme Library</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,50791893-ff4b-48e7-8ea7-db8ddb074ebe.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,50791893-ff4b-48e7-8ea7-db8ddb074ebe.aspx</link>
      <pubDate>Wed, 13 May 2009 20:52:29 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://www.xamltemplates.net/" href="http://www.xamltemplates.net/"&gt;http://www.xamltemplates.net/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.nukeation.com/" href="http://www.nukeation.com/"&gt;http://www.nukeation.com/&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=50791893-ff4b-48e7-8ea7-db8ddb074ebe" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,50791893-ff4b-48e7-8ea7-db8ddb074ebe.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=305a1c67-c590-424a-b96c-9dfbc3a7c829</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,305a1c67-c590-424a-b96c-9dfbc3a7c829.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,305a1c67-c590-424a-b96c-9dfbc3a7c829.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=305a1c67-c590-424a-b96c-9dfbc3a7c829</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Feature walkthrough <a title="http://windowsclient.net/wpf/wpf35/wpf-35sp1-toolkit-datagrid-feature-walkthrough.aspx" href="http://windowsclient.net/wpf/wpf35/wpf-35sp1-toolkit-datagrid-feature-walkthrough.aspx">http://windowsclient.net/wpf/wpf35/wpf-35sp1-toolkit-datagrid-feature-walkthrough.aspx</a></p>
        <p>
          <a title="http://blogs.msdn.com/vinsibal/archive/2008/08/11/net-3-5-sp1-and-wpf-datagrid-ctp-is-out-now.aspx" href="http://blogs.msdn.com/vinsibal/archive/2008/08/11/net-3-5-sp1-and-wpf-datagrid-ctp-is-out-now.aspx">http://blogs.msdn.com/vinsibal/archive/2008/08/11/net-3-5-sp1-and-wpf-datagrid-ctp-is-out-now.aspx</a>
        </p>
        <p>
MVVM Grouping with the DataGrid <a title="http://blogs.msdn.com/vinsibal/archive/2009/01/21/exploring-mvvm-grouping-with-the-datagrid.aspx" href="http://blogs.msdn.com/vinsibal/archive/2009/01/21/exploring-mvvm-grouping-with-the-datagrid.aspx">http://blogs.msdn.com/vinsibal/archive/2009/01/21/exploring-mvvm-grouping-with-the-datagrid.aspx</a></p>
        <p>
Dabbling around <a title="http://blogs.msdn.com/jaimer/archive/2008/08/13/dabbling-around-the-new-wpf-datagrid-part-1.aspx" href="http://blogs.msdn.com/jaimer/archive/2008/08/13/dabbling-around-the-new-wpf-datagrid-part-1.aspx">http://blogs.msdn.com/jaimer/archive/2008/08/13/dabbling-around-the-new-wpf-datagrid-part-1.aspx</a></p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=305a1c67-c590-424a-b96c-9dfbc3a7c829" />
      </body>
      <title>WPF DataGrid</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,305a1c67-c590-424a-b96c-9dfbc3a7c829.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,305a1c67-c590-424a-b96c-9dfbc3a7c829.aspx</link>
      <pubDate>Thu, 07 May 2009 17:22:46 GMT</pubDate>
      <description>&lt;p&gt;
Feature walkthrough &lt;a title="http://windowsclient.net/wpf/wpf35/wpf-35sp1-toolkit-datagrid-feature-walkthrough.aspx" href="http://windowsclient.net/wpf/wpf35/wpf-35sp1-toolkit-datagrid-feature-walkthrough.aspx"&gt;http://windowsclient.net/wpf/wpf35/wpf-35sp1-toolkit-datagrid-feature-walkthrough.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://blogs.msdn.com/vinsibal/archive/2008/08/11/net-3-5-sp1-and-wpf-datagrid-ctp-is-out-now.aspx" href="http://blogs.msdn.com/vinsibal/archive/2008/08/11/net-3-5-sp1-and-wpf-datagrid-ctp-is-out-now.aspx"&gt;http://blogs.msdn.com/vinsibal/archive/2008/08/11/net-3-5-sp1-and-wpf-datagrid-ctp-is-out-now.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
MVVM Grouping with the DataGrid &lt;a title="http://blogs.msdn.com/vinsibal/archive/2009/01/21/exploring-mvvm-grouping-with-the-datagrid.aspx" href="http://blogs.msdn.com/vinsibal/archive/2009/01/21/exploring-mvvm-grouping-with-the-datagrid.aspx"&gt;http://blogs.msdn.com/vinsibal/archive/2009/01/21/exploring-mvvm-grouping-with-the-datagrid.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Dabbling around &lt;a title="http://blogs.msdn.com/jaimer/archive/2008/08/13/dabbling-around-the-new-wpf-datagrid-part-1.aspx" href="http://blogs.msdn.com/jaimer/archive/2008/08/13/dabbling-around-the-new-wpf-datagrid-part-1.aspx"&gt;http://blogs.msdn.com/jaimer/archive/2008/08/13/dabbling-around-the-new-wpf-datagrid-part-1.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=305a1c67-c590-424a-b96c-9dfbc3a7c829" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,305a1c67-c590-424a-b96c-9dfbc3a7c829.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=f42cfa88-c215-4a55-bbe4-43bf83e33fd0</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,f42cfa88-c215-4a55-bbe4-43bf83e33fd0.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,f42cfa88-c215-4a55-bbe4-43bf83e33fd0.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=f42cfa88-c215-4a55-bbe4-43bf83e33fd0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
FluidKit  <a title="http://www.codeplex.com/fluidkit" href="http://www.codeplex.com/fluidkit">http://www.codeplex.com/fluidkit</a>   
</p>
        <p>
WPF Futures <a title="http://www.codeplex.com/wpf/Release/ProjectReleases.aspx?ReleaseId=14962" href="http://www.codeplex.com/wpf/Release/ProjectReleases.aspx?ReleaseId=14962">http://www.codeplex.com/wpf/Release/ProjectReleases.aspx?ReleaseId=14962</a></p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=f42cfa88-c215-4a55-bbe4-43bf83e33fd0" />
      </body>
      <title>WPF Library</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,f42cfa88-c215-4a55-bbe4-43bf83e33fd0.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,f42cfa88-c215-4a55-bbe4-43bf83e33fd0.aspx</link>
      <pubDate>Thu, 07 May 2009 15:54:11 GMT</pubDate>
      <description>&lt;p&gt;
FluidKit&amp;nbsp; &lt;a title="http://www.codeplex.com/fluidkit" href="http://www.codeplex.com/fluidkit"&gt;http://www.codeplex.com/fluidkit&lt;/a&gt;&amp;nbsp;&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
WPF Futures &lt;a title="http://www.codeplex.com/wpf/Release/ProjectReleases.aspx?ReleaseId=14962" href="http://www.codeplex.com/wpf/Release/ProjectReleases.aspx?ReleaseId=14962"&gt;http://www.codeplex.com/wpf/Release/ProjectReleases.aspx?ReleaseId=14962&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=f42cfa88-c215-4a55-bbe4-43bf83e33fd0" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,f42cfa88-c215-4a55-bbe4-43bf83e33fd0.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=5cd04ff8-4e80-4e55-9f30-2c596b96597c</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,5cd04ff8-4e80-4e55-9f30-2c596b96597c.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,5cd04ff8-4e80-4e55-9f30-2c596b96597c.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=5cd04ff8-4e80-4e55-9f30-2c596b96597c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://weblogs.asp.net/thomaslebrun/archive/2009/03/24/wpf-how-to-develop-and-editable-textblock.aspx" href="http://weblogs.asp.net/thomaslebrun/archive/2009/03/24/wpf-how-to-develop-and-editable-textblock.aspx">http://weblogs.asp.net/thomaslebrun/archive/2009/03/24/wpf-how-to-develop-and-editable-textblock.aspx</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=5cd04ff8-4e80-4e55-9f30-2c596b96597c" />
      </body>
      <title>Inline Editable TextBlock for WPF</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,5cd04ff8-4e80-4e55-9f30-2c596b96597c.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,5cd04ff8-4e80-4e55-9f30-2c596b96597c.aspx</link>
      <pubDate>Wed, 29 Apr 2009 19:05:29 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://weblogs.asp.net/thomaslebrun/archive/2009/03/24/wpf-how-to-develop-and-editable-textblock.aspx" href="http://weblogs.asp.net/thomaslebrun/archive/2009/03/24/wpf-how-to-develop-and-editable-textblock.aspx"&gt;http://weblogs.asp.net/thomaslebrun/archive/2009/03/24/wpf-how-to-develop-and-editable-textblock.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=5cd04ff8-4e80-4e55-9f30-2c596b96597c" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,5cd04ff8-4e80-4e55-9f30-2c596b96597c.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=d17c200a-536a-455c-9479-5aca6fc7284d</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,d17c200a-536a-455c-9479-5aca6fc7284d.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,d17c200a-536a-455c-9479-5aca6fc7284d.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=d17c200a-536a-455c-9479-5aca6fc7284d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
MVVM Routed and Relay Command  <a title="http://stackoverflow.com/questions/650010/mvvm-routed-and-relay-command" href="http://stackoverflow.com/questions/650010/mvvm-routed-and-relay-command">http://stackoverflow.com/questions/650010/mvvm-routed-and-relay-command</a></p>
        <p>
MVVM in Silverlight 2 Apps <a title="http://msdn.microsoft.com/en-us/magazine/dd458800.aspx" href="http://msdn.microsoft.com/en-us/magazine/dd458800.aspx">http://msdn.microsoft.com/en-us/magazine/dd458800.aspx</a></p>
        <p>
[MVVM + Mediator + ACB = cool WPF App] <a title="http://marlongrech.wordpress.com/2009/04/08/mvvm-mediator-acb-cool-wpf-app-the-mvvm/" href="http://marlongrech.wordpress.com/2009/04/08/mvvm-mediator-acb-cool-wpf-app-the-mvvm/">http://marlongrech.wordpress.com/2009/04/08/mvvm-mediator-acb-cool-wpf-app-the-mvvm/</a></p>
        <p>
WPF &amp; Silverlight Line of Business UI Design Pattern Home Page <a title="http://karlshifflett.wordpress.com/mvvm/" href="http://karlshifflett.wordpress.com/mvvm/">http://karlshifflett.wordpress.com/mvvm/</a>  
(*****)
</p>
        <p>
Mediator v2 for MVVM WPF and Silverlight applications <a title="http://marlongrech.wordpress.com/2009/04/16/mediator-v2-for-mvvm-wpf-and-silverlight-applications/" href="http://marlongrech.wordpress.com/2009/04/16/mediator-v2-for-mvvm-wpf-and-silverlight-applications/">http://marlongrech.wordpress.com/2009/04/16/mediator-v2-for-mvvm-wpf-and-silverlight-applications/</a></p>
        <p>
CommandSink (Using RoutedCommands with a ViewModel in WPF) <a title="http://www.codeproject.com/KB/WPF/VMCommanding.aspx" href="http://www.codeproject.com/KB/WPF/VMCommanding.aspx">http://www.codeproject.com/KB/WPF/VMCommanding.aspx</a></p>
        <p>
Mapping commands in WPF <a title="http://www.codeproject.com/KB/WPF/MapperCommandBinding.aspx" href="http://www.codeproject.com/KB/WPF/MapperCommandBinding.aspx">http://www.codeproject.com/KB/WPF/MapperCommandBinding.aspx</a></p>
        <p>
From Josh Smith
</p>
        <p>
          <em>“Use CommandSink if you must use routed commands. Otherwise, use RelayCommand.
Routed commands should not be your first choice when choosing how to set up commanding,
because it’s unnecessarily complicated and heavy for most use cases.”</em>
        </p>
        <p>
 
</p>
        <p>
Using Comand Binding to Enhance Any WPF Control <a title="http://www.dev102.com/2008/12/10/using-command-binding-to-enhance-any-wpf-control/" href="http://www.dev102.com/2008/12/10/using-command-binding-to-enhance-any-wpf-control/">http://www.dev102.com/2008/12/10/using-command-binding-to-enhance-any-wpf-control/</a></p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=d17c200a-536a-455c-9479-5aca6fc7284d" />
      </body>
      <title>Model-View-ViewModel</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,d17c200a-536a-455c-9479-5aca6fc7284d.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,d17c200a-536a-455c-9479-5aca6fc7284d.aspx</link>
      <pubDate>Wed, 15 Apr 2009 22:01:29 GMT</pubDate>
      <description>&lt;p&gt;
MVVM Routed and Relay Command&amp;nbsp; &lt;a title="http://stackoverflow.com/questions/650010/mvvm-routed-and-relay-command" href="http://stackoverflow.com/questions/650010/mvvm-routed-and-relay-command"&gt;http://stackoverflow.com/questions/650010/mvvm-routed-and-relay-command&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
MVVM in Silverlight 2 Apps &lt;a title="http://msdn.microsoft.com/en-us/magazine/dd458800.aspx" href="http://msdn.microsoft.com/en-us/magazine/dd458800.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/dd458800.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
[MVVM + Mediator + ACB = cool WPF App] &lt;a title="http://marlongrech.wordpress.com/2009/04/08/mvvm-mediator-acb-cool-wpf-app-the-mvvm/" href="http://marlongrech.wordpress.com/2009/04/08/mvvm-mediator-acb-cool-wpf-app-the-mvvm/"&gt;http://marlongrech.wordpress.com/2009/04/08/mvvm-mediator-acb-cool-wpf-app-the-mvvm/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
WPF &amp;amp; Silverlight Line of Business UI Design Pattern Home Page &lt;a title="http://karlshifflett.wordpress.com/mvvm/" href="http://karlshifflett.wordpress.com/mvvm/"&gt;http://karlshifflett.wordpress.com/mvvm/&lt;/a&gt;&amp;nbsp;&amp;nbsp;
(*****)
&lt;/p&gt;
&lt;p&gt;
Mediator v2 for MVVM WPF and Silverlight applications &lt;a title="http://marlongrech.wordpress.com/2009/04/16/mediator-v2-for-mvvm-wpf-and-silverlight-applications/" href="http://marlongrech.wordpress.com/2009/04/16/mediator-v2-for-mvvm-wpf-and-silverlight-applications/"&gt;http://marlongrech.wordpress.com/2009/04/16/mediator-v2-for-mvvm-wpf-and-silverlight-applications/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
CommandSink (Using RoutedCommands with a ViewModel in WPF) &lt;a title="http://www.codeproject.com/KB/WPF/VMCommanding.aspx" href="http://www.codeproject.com/KB/WPF/VMCommanding.aspx"&gt;http://www.codeproject.com/KB/WPF/VMCommanding.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Mapping commands in WPF &lt;a title="http://www.codeproject.com/KB/WPF/MapperCommandBinding.aspx" href="http://www.codeproject.com/KB/WPF/MapperCommandBinding.aspx"&gt;http://www.codeproject.com/KB/WPF/MapperCommandBinding.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
From Josh Smith
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;“Use CommandSink if you must use routed commands. Otherwise, use RelayCommand.
Routed commands should not be your first choice when choosing how to set up commanding,
because it’s unnecessarily complicated and heavy for most use cases.”&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Using Comand Binding to Enhance Any WPF Control &lt;a title="http://www.dev102.com/2008/12/10/using-command-binding-to-enhance-any-wpf-control/" href="http://www.dev102.com/2008/12/10/using-command-binding-to-enhance-any-wpf-control/"&gt;http://www.dev102.com/2008/12/10/using-command-binding-to-enhance-any-wpf-control/&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=d17c200a-536a-455c-9479-5aca6fc7284d" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,d17c200a-536a-455c-9479-5aca6fc7284d.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=13c842f6-0226-4ce6-a5fe-864cd44ba5aa</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,13c842f6-0226-4ce6-a5fe-864cd44ba5aa.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,13c842f6-0226-4ce6-a5fe-864cd44ba5aa.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=13c842f6-0226-4ce6-a5fe-864cd44ba5aa</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://interactiveasp.net/blogs/natesstuff/archive/2009/01/21/6-things-i-bet-you-didn-t-know-about-data-binding-in-wpf.aspx" href="http://interactiveasp.net/blogs/natesstuff/archive/2009/01/21/6-things-i-bet-you-didn-t-know-about-data-binding-in-wpf.aspx">http://interactiveasp.net/blogs/natesstuff/archive/2009/01/21/6-things-i-bet-you-didn-t-know-about-data-binding-in-wpf.aspx</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=13c842f6-0226-4ce6-a5fe-864cd44ba5aa" />
      </body>
      <title>6 Things I Bet You Didn't Know About Data Binding in WPF</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,13c842f6-0226-4ce6-a5fe-864cd44ba5aa.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,13c842f6-0226-4ce6-a5fe-864cd44ba5aa.aspx</link>
      <pubDate>Mon, 02 Mar 2009 21:03:56 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://interactiveasp.net/blogs/natesstuff/archive/2009/01/21/6-things-i-bet-you-didn-t-know-about-data-binding-in-wpf.aspx" href="http://interactiveasp.net/blogs/natesstuff/archive/2009/01/21/6-things-i-bet-you-didn-t-know-about-data-binding-in-wpf.aspx"&gt;http://interactiveasp.net/blogs/natesstuff/archive/2009/01/21/6-things-i-bet-you-didn-t-know-about-data-binding-in-wpf.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=13c842f6-0226-4ce6-a5fe-864cd44ba5aa" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,13c842f6-0226-4ce6-a5fe-864cd44ba5aa.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=df2737ab-5039-418c-b737-ca2d3e372e42</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,df2737ab-5039-418c-b737-ca2d3e372e42.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,df2737ab-5039-418c-b737-ca2d3e372e42.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=df2737ab-5039-418c-b737-ca2d3e372e42</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://www.tozon.info/blog/post/2009/02/16/Binding-to-Enums.aspx" href="http://www.tozon.info/blog/post/2009/02/16/Binding-to-Enums.aspx">http://www.tozon.info/blog/post/2009/02/16/Binding-to-Enums.aspx</a>
        </p>
        <p>
I’ve seen numerous questions regarding data binding to Enums, together with many solutions
on how to do it, but the question I’m asking myself is – do I really want to bind
anything to an Enum? 
</p>
        <p>
I like to think about Enums purely as a coding aid – to help programmer code with
some descriptive names instead of messing with pure numeric values. Similar to what
constants are for, except Enums provide a set of values for describing a single parameter. 
</p>
        <p>
Instead of:
</p>
        <pre>product.Quality = 3;</pre>
        <p>
the programmer would write:
</p>
        <pre>product.Quality = Quality.Good;</pre>
        <p>
… providing that Quality Enum is declared something like:
</p>
        <pre>public enum Quality
{
    JustBad, Poor, OK, Good, Excellent
}</pre>
        <p>
Of course, you could set your enum values to some concrete numbers, like:
</p>
        <pre>public enum Quality
{
    JustBad = 1, Poor = 2, OK = 3, Good = 4, Excellent = 5
}</pre>
        <p>
… but in most cases you shouldn’t need to. Like I said, I see Enums only as a <em>before-compilation</em>, <em>human
&lt;-&gt; code</em> communication, and therefore I believe no part of Enum should
ever see the light of day (i.e. be exposed to the UI). And with that, there goes the
need for binding to Enums… 
</p>
        <p>
Why would I want to bind to Enums anyway? Enum enumerators have no description (other
than their names). If you need to provide spaces or even support localized descriptions,
you’ll need to extend them significantly, so why not create a new class anyway? Here’s
what I use instead of an Enum:
</p>
        <pre>public sealed class Quality
{
    public const int JustBad = 1;
    public const int Poor = 2;
    public const int OK = 3;
    public const int Good = 4;
    public const int Excellent = 5;

    public Dictionary&lt;int, string&gt; Collection { get; private set; }

    public Quality()
    {
        Collection = new Dictionary&lt;int, string&gt;()
        {
            {JustBad,   "Just bad :("},
            {Poor,      "Poor"},
            {OK,        "OK"},
            {Good,      "Good"},
            {Excellent, "Excellent!"},
        };
    }
}</pre>
        <p>
The programmer would still write:
</p>
        <pre>product.Quality = Quality.Good;</pre>
        <p>
so it makes it easy to refactor existing code. Additionally, you can put in any description
for the values, support localization, and it’s easy bindable in Xaml - declare the
class instance as a local resource:
</p>
        <pre>&lt;local:Quality x:Key="quality" /&gt;</pre>
and bind away:<pre>&lt;ListBox DisplayMemberPath="Value" 
         ItemsSource="{Binding Collection, Source={StaticResource quality}}" /&gt;</pre><img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=df2737ab-5039-418c-b737-ca2d3e372e42" /></body>
      <title>Binding to Enums</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,df2737ab-5039-418c-b737-ca2d3e372e42.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,df2737ab-5039-418c-b737-ca2d3e372e42.aspx</link>
      <pubDate>Mon, 02 Mar 2009 21:01:41 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://www.tozon.info/blog/post/2009/02/16/Binding-to-Enums.aspx" href="http://www.tozon.info/blog/post/2009/02/16/Binding-to-Enums.aspx"&gt;http://www.tozon.info/blog/post/2009/02/16/Binding-to-Enums.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
I’ve seen numerous questions regarding data binding to Enums, together with many solutions
on how to do it, but the question I’m asking myself is – do I really want to bind
anything to an Enum? 
&lt;p&gt;
I like to think about Enums purely as a coding aid – to help programmer code with
some descriptive names instead of messing with pure numeric values. Similar to what
constants are for, except Enums provide a set of values for describing a single parameter. 
&lt;p&gt;
Instead of:&lt;pre&gt;product.Quality = 3;&lt;/pre&gt;
&lt;p&gt;
the programmer would write:&lt;pre&gt;product.Quality = Quality.Good;&lt;/pre&gt;
&lt;p&gt;
… providing that Quality Enum is declared something like:&lt;pre&gt;public enum Quality
{
    JustBad, Poor, OK, Good, Excellent
}&lt;/pre&gt;
&lt;p&gt;
Of course, you could set your enum values to some concrete numbers, like:&lt;pre&gt;public enum Quality
{
    JustBad = 1, Poor = 2, OK = 3, Good = 4, Excellent = 5
}&lt;/pre&gt;
&lt;p&gt;
… but in most cases you shouldn’t need to. Like I said, I see Enums only as a &lt;em&gt;before-compilation&lt;/em&gt;, &lt;em&gt;human
&amp;lt;-&amp;gt; code&lt;/em&gt; communication, and therefore I believe no part of Enum should
ever see the light of day (i.e. be exposed to the UI). And with that, there goes the
need for binding to Enums… 
&lt;p&gt;
Why would I want to bind to Enums anyway? Enum enumerators have no description (other
than their names). If you need to provide spaces or even support localized descriptions,
you’ll need to extend them significantly, so why not create a new class anyway? Here’s
what I use instead of an Enum:&lt;pre&gt;public sealed class Quality
{
    public const int JustBad = 1;
    public const int Poor = 2;
    public const int OK = 3;
    public const int Good = 4;
    public const int Excellent = 5;

    public Dictionary&amp;lt;int, string&amp;gt; Collection { get; private set; }

    public Quality()
    {
        Collection = new Dictionary&amp;lt;int, string&amp;gt;()
        {
            {JustBad,   "Just bad :("},
            {Poor,      "Poor"},
            {OK,        "OK"},
            {Good,      "Good"},
            {Excellent, "Excellent!"},
        };
    }
}&lt;/pre&gt;
&lt;p&gt;
The programmer would still write:&lt;pre&gt;product.Quality = Quality.Good;&lt;/pre&gt;
&lt;p&gt;
so it makes it easy to refactor existing code. Additionally, you can put in any description
for the values, support localization, and it’s easy bindable in Xaml - declare the
class instance as a local resource:&lt;pre&gt;&amp;lt;local:Quality x:Key="quality" /&amp;gt;&lt;/pre&gt;
and bind away:&lt;pre&gt;&amp;lt;ListBox DisplayMemberPath="Value" 
         ItemsSource="{Binding Collection, Source={StaticResource quality}}" /&amp;gt;&lt;/pre&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=df2737ab-5039-418c-b737-ca2d3e372e42" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,df2737ab-5039-418c-b737-ca2d3e372e42.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=4b69b44b-4b28-4b8a-aaea-7bfb3cdd6415</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,4b69b44b-4b28-4b8a-aaea-7bfb3cdd6415.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,4b69b44b-4b28-4b8a-aaea-7bfb3cdd6415.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=4b69b44b-4b28-4b8a-aaea-7bfb3cdd6415</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://possemeeg.wordpress.com/2007/09/06/minimize-to-tray-icon-in-wpf/" href="http://possemeeg.wordpress.com/2007/09/06/minimize-to-tray-icon-in-wpf/">http://possemeeg.wordpress.com/2007/09/06/minimize-to-tray-icon-in-wpf/</a>
        </p>
        <p>
          <a title="http://www.codeproject.com/KB/WPF/WPF_TaskbarNotifier.aspx" href="http://www.codeproject.com/KB/WPF/WPF_TaskbarNotifier.aspx">http://www.codeproject.com/KB/WPF/WPF_TaskbarNotifier.aspx</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=4b69b44b-4b28-4b8a-aaea-7bfb3cdd6415" />
      </body>
      <title>Create System Tray Applications in WPF</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,4b69b44b-4b28-4b8a-aaea-7bfb3cdd6415.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,4b69b44b-4b28-4b8a-aaea-7bfb3cdd6415.aspx</link>
      <pubDate>Mon, 02 Feb 2009 21:14:03 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://possemeeg.wordpress.com/2007/09/06/minimize-to-tray-icon-in-wpf/" href="http://possemeeg.wordpress.com/2007/09/06/minimize-to-tray-icon-in-wpf/"&gt;http://possemeeg.wordpress.com/2007/09/06/minimize-to-tray-icon-in-wpf/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.codeproject.com/KB/WPF/WPF_TaskbarNotifier.aspx" href="http://www.codeproject.com/KB/WPF/WPF_TaskbarNotifier.aspx"&gt;http://www.codeproject.com/KB/WPF/WPF_TaskbarNotifier.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=4b69b44b-4b28-4b8a-aaea-7bfb3cdd6415" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,4b69b44b-4b28-4b8a-aaea-7bfb3cdd6415.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=a3f8553c-cbb6-483f-9d29-88a0ab173d22</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,a3f8553c-cbb6-483f-9d29-88a0ab173d22.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,a3f8553c-cbb6-483f-9d29-88a0ab173d22.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=a3f8553c-cbb6-483f-9d29-88a0ab173d22</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://msdn.microsoft.com/en-us/ms741997(VS.85).aspx" href="http://msdn.microsoft.com/en-us/ms741997(VS.85).aspx">http://msdn.microsoft.com/en-us/ms741997(VS.85).aspx</a>
        </p>
        <pre class="csharpcode">
          <span class="rem">// Begins the storyboard.</span>
          <span class="kwrd">private</span>
          <span class="kwrd">void</span> beginButton_Clicked(<span class="kwrd">object</span> sender,
RoutedEventArgs args) { <span class="rem">// Specifying "true" as the second Begin
parameter</span><span class="rem">// makes this storyboard controllable.</span> myStoryboard.Begin(<span class="kwrd">this</span>, <span class="kwrd">true</span>);
} <span class="rem">// Pauses the storyboard.</span><span class="kwrd">private</span><span class="kwrd">void</span> pauseButton_Clicked(<span class="kwrd">object</span> sender,
RoutedEventArgs args) { myStoryboard.Pause(<span class="kwrd">this</span>); } <span class="rem">//
Resumes the storyboard.</span><span class="kwrd">private</span><span class="kwrd">void</span> resumeButton_Clicked(<span class="kwrd">object</span> sender,
RoutedEventArgs args) { myStoryboard.Resume(<span class="kwrd">this</span>); } <span class="rem">//
Advances the storyboard to its fill period.</span><span class="kwrd">private</span><span class="kwrd">void</span> skipToFillButton_Clicked(<span class="kwrd">object</span> sender,
RoutedEventArgs args) { myStoryboard.SkipToFill(<span class="kwrd">this</span>); } <span class="rem">//
Updates the storyboard's speed.</span><span class="kwrd">private</span><span class="kwrd">void</span> setSpeedRatioButton_Clicked(<span class="kwrd">object</span> sender,
RoutedEventArgs args) { <span class="rem">// Makes the storyboard progress three times
as fast as normal.</span> myStoryboard.SetSpeedRatio(<span class="kwrd">this</span>,
3); } <span class="rem">// Stops the storyboard.</span><span class="kwrd">private</span><span class="kwrd">void</span> stopButton_Clicked(<span class="kwrd">object</span> sender,
RoutedEventArgs args) { myStoryboard.Stop(<span class="kwrd">this</span>); } </pre>
        <style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=a3f8553c-cbb6-483f-9d29-88a0ab173d22" />
      </body>
      <title>How to control a Storyboard after it starts?</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,a3f8553c-cbb6-483f-9d29-88a0ab173d22.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,a3f8553c-cbb6-483f-9d29-88a0ab173d22.aspx</link>
      <pubDate>Fri, 07 Nov 2008 15:48:14 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://msdn.microsoft.com/en-us/ms741997(VS.85).aspx" href="http://msdn.microsoft.com/en-us/ms741997(VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/ms741997(VS.85).aspx&lt;/a&gt;
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;        &lt;span class="rem"&gt;// Begins the storyboard.&lt;/span&gt; &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; beginButton_Clicked(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender,
RoutedEventArgs args) { &lt;span class="rem"&gt;// Specifying "true" as the second Begin
parameter&lt;/span&gt; &lt;span class="rem"&gt;// makes this storyboard controllable.&lt;/span&gt; myStoryboard.Begin(&lt;span class="kwrd"&gt;this&lt;/span&gt;, &lt;span class="kwrd"&gt;true&lt;/span&gt;);
} &lt;span class="rem"&gt;// Pauses the storyboard.&lt;/span&gt; &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; pauseButton_Clicked(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender,
RoutedEventArgs args) { myStoryboard.Pause(&lt;span class="kwrd"&gt;this&lt;/span&gt;); } &lt;span class="rem"&gt;//
Resumes the storyboard.&lt;/span&gt; &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; resumeButton_Clicked(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender,
RoutedEventArgs args) { myStoryboard.Resume(&lt;span class="kwrd"&gt;this&lt;/span&gt;); } &lt;span class="rem"&gt;//
Advances the storyboard to its fill period.&lt;/span&gt; &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; skipToFillButton_Clicked(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender,
RoutedEventArgs args) { myStoryboard.SkipToFill(&lt;span class="kwrd"&gt;this&lt;/span&gt;); } &lt;span class="rem"&gt;//
Updates the storyboard's speed.&lt;/span&gt; &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; setSpeedRatioButton_Clicked(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender,
RoutedEventArgs args) { &lt;span class="rem"&gt;// Makes the storyboard progress three times
as fast as normal.&lt;/span&gt; myStoryboard.SetSpeedRatio(&lt;span class="kwrd"&gt;this&lt;/span&gt;,
3); } &lt;span class="rem"&gt;// Stops the storyboard.&lt;/span&gt; &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; stopButton_Clicked(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender,
RoutedEventArgs args) { myStoryboard.Stop(&lt;span class="kwrd"&gt;this&lt;/span&gt;); } &lt;/pre&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=a3f8553c-cbb6-483f-9d29-88a0ab173d22" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,a3f8553c-cbb6-483f-9d29-88a0ab173d22.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=2fd5dda9-edec-4cf5-bd2b-314893a7a701</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,2fd5dda9-edec-4cf5-bd2b-314893a7a701.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,2fd5dda9-edec-4cf5-bd2b-314893a7a701.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2fd5dda9-edec-4cf5-bd2b-314893a7a701</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://www.code-magazine.com/article.aspx?quickid=0803061&amp;page=1" href="http://www.code-magazine.com/article.aspx?quickid=0803061&amp;page=1">http://www.code-magazine.com/article.aspx?quickid=0803061&amp;page=1</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=2fd5dda9-edec-4cf5-bd2b-314893a7a701" />
      </body>
      <title>WPF Meets the iPhone</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,2fd5dda9-edec-4cf5-bd2b-314893a7a701.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,2fd5dda9-edec-4cf5-bd2b-314893a7a701.aspx</link>
      <pubDate>Tue, 09 Sep 2008 20:21:33 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://www.code-magazine.com/article.aspx?quickid=0803061&amp;amp;page=1" href="http://www.code-magazine.com/article.aspx?quickid=0803061&amp;amp;page=1"&gt;http://www.code-magazine.com/article.aspx?quickid=0803061&amp;amp;page=1&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=2fd5dda9-edec-4cf5-bd2b-314893a7a701" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,2fd5dda9-edec-4cf5-bd2b-314893a7a701.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=2a2374e0-297a-462c-9675-f9eef9ef4a5c</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,2a2374e0-297a-462c-9675-f9eef9ef4a5c.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,2a2374e0-297a-462c-9675-f9eef9ef4a5c.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2a2374e0-297a-462c-9675-f9eef9ef4a5c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://mikescodeblog.blogspot.com/2007/12/wpf-progress-bars.html" href="http://mikescodeblog.blogspot.com/2007/12/wpf-progress-bars.html">http://mikescodeblog.blogspot.com/2007/12/wpf-progress-bars.html</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=2a2374e0-297a-462c-9675-f9eef9ef4a5c" />
      </body>
      <title>WPF Progress Bars</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,2a2374e0-297a-462c-9675-f9eef9ef4a5c.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,2a2374e0-297a-462c-9675-f9eef9ef4a5c.aspx</link>
      <pubDate>Fri, 15 Aug 2008 22:08:07 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://mikescodeblog.blogspot.com/2007/12/wpf-progress-bars.html" href="http://mikescodeblog.blogspot.com/2007/12/wpf-progress-bars.html"&gt;http://mikescodeblog.blogspot.com/2007/12/wpf-progress-bars.html&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=2a2374e0-297a-462c-9675-f9eef9ef4a5c" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,2a2374e0-297a-462c-9675-f9eef9ef4a5c.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=68ed08a6-8cef-4eae-b071-243d1b0c6e00</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,68ed08a6-8cef-4eae-b071-243d1b0c6e00.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,68ed08a6-8cef-4eae-b071-243d1b0c6e00.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=68ed08a6-8cef-4eae-b071-243d1b0c6e00</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://nayyeri.net/blog/viewbox-and-viewport-in-windows-presentation-foundation/" href="http://nayyeri.net/blog/viewbox-and-viewport-in-windows-presentation-foundation/">http://nayyeri.net/blog/viewbox-and-viewport-in-windows-presentation-foundation/</a>
        </p>
        <p>
          <a title="http://www.vinull.com/Post/2008/03/21/wpf-using-viewbox-and-canvas-to-create-.aspx" href="http://www.vinull.com/Post/2008/03/21/wpf-using-viewbox-and-canvas-to-create-.aspx">http://www.vinull.com/Post/2008/03/21/wpf-using-viewbox-and-canvas-to-create-.aspx</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=68ed08a6-8cef-4eae-b071-243d1b0c6e00" />
      </body>
      <title>Viewbox and Viewport in WPF</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,68ed08a6-8cef-4eae-b071-243d1b0c6e00.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,68ed08a6-8cef-4eae-b071-243d1b0c6e00.aspx</link>
      <pubDate>Fri, 18 Jul 2008 21:30:46 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://nayyeri.net/blog/viewbox-and-viewport-in-windows-presentation-foundation/" href="http://nayyeri.net/blog/viewbox-and-viewport-in-windows-presentation-foundation/"&gt;http://nayyeri.net/blog/viewbox-and-viewport-in-windows-presentation-foundation/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.vinull.com/Post/2008/03/21/wpf-using-viewbox-and-canvas-to-create-.aspx" href="http://www.vinull.com/Post/2008/03/21/wpf-using-viewbox-and-canvas-to-create-.aspx"&gt;http://www.vinull.com/Post/2008/03/21/wpf-using-viewbox-and-canvas-to-create-.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=68ed08a6-8cef-4eae-b071-243d1b0c6e00" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,68ed08a6-8cef-4eae-b071-243d1b0c6e00.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=1159f2c3-79cb-4665-8318-5db5b722b2b9</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,1159f2c3-79cb-4665-8318-5db5b722b2b9.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,1159f2c3-79cb-4665-8318-5db5b722b2b9.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=1159f2c3-79cb-4665-8318-5db5b722b2b9</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://www.codeproject.com/KB/WPF/WPFJoshSmith.aspx" href="http://www.codeproject.com/KB/WPF/WPFJoshSmith.aspx">http://www.codeproject.com/KB/WPF/WPFJoshSmith.aspx</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=1159f2c3-79cb-4665-8318-5db5b722b2b9" />
      </body>
      <title>Control library from Josh Smith</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,1159f2c3-79cb-4665-8318-5db5b722b2b9.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,1159f2c3-79cb-4665-8318-5db5b722b2b9.aspx</link>
      <pubDate>Fri, 18 Jul 2008 21:27:57 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://www.codeproject.com/KB/WPF/WPFJoshSmith.aspx" href="http://www.codeproject.com/KB/WPF/WPFJoshSmith.aspx"&gt;http://www.codeproject.com/KB/WPF/WPFJoshSmith.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=1159f2c3-79cb-4665-8318-5db5b722b2b9" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,1159f2c3-79cb-4665-8318-5db5b722b2b9.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=a65f834b-212d-401e-a4fc-564fba2e1863</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,a65f834b-212d-401e-a4fc-564fba2e1863.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,a65f834b-212d-401e-a4fc-564fba2e1863.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=a65f834b-212d-401e-a4fc-564fba2e1863</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://msdn.microsoft.com/en-us/library/ms771277.aspx" href="http://msdn.microsoft.com/en-us/library/ms771277.aspx">http://msdn.microsoft.com/en-us/library/ms771277.aspx</a> 
</p>
        <p>
          <a title="http://msdn.microsoft.com/en-us/library/ms745183.aspx" href="http://msdn.microsoft.com/en-us/library/ms745183.aspx">http://msdn.microsoft.com/en-us/library/ms745183.aspx</a>(EditBox
in GridView)
</p>
        <p>
          <a title="http://msdn.microsoft.com/en-us/library/ms747117.aspx" href="http://msdn.microsoft.com/en-us/library/ms747117.aspx">http://msdn.microsoft.com/en-us/library/ms747117.aspx</a>
        </p>
        <p>
          <a title="http://www.codeproject.com/KB/WPF/SmartTextBox.aspx" href="http://www.codeproject.com/KB/WPF/SmartTextBox.aspx">http://www.codeproject.com/KB/WPF/SmartTextBox.aspx</a>
        </p>
        <p>
          <a title="http://www.codeproject.com/KB/WPF/WPFBusinessAppsPartTwo.aspx" href="http://www.codeproject.com/KB/WPF/WPFBusinessAppsPartTwo.aspx">http://www.codeproject.com/KB/WPF/WPFBusinessAppsPartTwo.aspx</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=a65f834b-212d-401e-a4fc-564fba2e1863" />
      </body>
      <title>WPF Adorner</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,a65f834b-212d-401e-a4fc-564fba2e1863.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,a65f834b-212d-401e-a4fc-564fba2e1863.aspx</link>
      <pubDate>Fri, 18 Jul 2008 21:07:44 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://msdn.microsoft.com/en-us/library/ms771277.aspx" href="http://msdn.microsoft.com/en-us/library/ms771277.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms771277.aspx&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://msdn.microsoft.com/en-us/library/ms745183.aspx" href="http://msdn.microsoft.com/en-us/library/ms745183.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms745183.aspx&lt;/a&gt;(EditBox
in GridView)
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://msdn.microsoft.com/en-us/library/ms747117.aspx" href="http://msdn.microsoft.com/en-us/library/ms747117.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms747117.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.codeproject.com/KB/WPF/SmartTextBox.aspx" href="http://www.codeproject.com/KB/WPF/SmartTextBox.aspx"&gt;http://www.codeproject.com/KB/WPF/SmartTextBox.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.codeproject.com/KB/WPF/WPFBusinessAppsPartTwo.aspx" href="http://www.codeproject.com/KB/WPF/WPFBusinessAppsPartTwo.aspx"&gt;http://www.codeproject.com/KB/WPF/WPFBusinessAppsPartTwo.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=a65f834b-212d-401e-a4fc-564fba2e1863" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,a65f834b-212d-401e-a4fc-564fba2e1863.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=33fe6ac7-661a-49df-b036-88c0477bc22c</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,33fe6ac7-661a-49df-b036-88c0477bc22c.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,33fe6ac7-661a-49df-b036-88c0477bc22c.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=33fe6ac7-661a-49df-b036-88c0477bc22c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
To solve this, we have to manually add the mouse event handler onto the controls and
set the handled parameter to true.
</p>
        <p>
this.tbId.AddHandler(TextBox.MouseDownEvent, new RoutedEventHandler(tb_mouseDown), <font color="#ff0000" size="4"><strong>true</strong></font>);
</p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=33fe6ac7-661a-49df-b036-88c0477bc22c" />
      </body>
      <title>How to force to raise the bubble routed events for some controls?</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,33fe6ac7-661a-49df-b036-88c0477bc22c.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,33fe6ac7-661a-49df-b036-88c0477bc22c.aspx</link>
      <pubDate>Wed, 16 Jul 2008 22:06:03 GMT</pubDate>
      <description>&lt;p&gt;
To solve this, we have to manually add the mouse event handler onto the controls and
set the handled parameter to true.
&lt;/p&gt;
&lt;p&gt;
this.tbId.AddHandler(TextBox.MouseDownEvent, new RoutedEventHandler(tb_mouseDown), &lt;font color="#ff0000" size="4"&gt;&lt;strong&gt;true&lt;/strong&gt;&lt;/font&gt;);
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=33fe6ac7-661a-49df-b036-88c0477bc22c" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,33fe6ac7-661a-49df-b036-88c0477bc22c.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=3d627c61-9c2d-41f9-91b5-120c2eb38b88</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,3d627c61-9c2d-41f9-91b5-120c2eb38b88.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,3d627c61-9c2d-41f9-91b5-120c2eb38b88.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=3d627c61-9c2d-41f9-91b5-120c2eb38b88</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
_strandGroup = this.listViewGroups.SelectedItem as StrandGroup;
</p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=3d627c61-9c2d-41f9-91b5-120c2eb38b88" />
      </body>
      <title>find the selected object of listview</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,3d627c61-9c2d-41f9-91b5-120c2eb38b88.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,3d627c61-9c2d-41f9-91b5-120c2eb38b88.aspx</link>
      <pubDate>Wed, 16 Jul 2008 14:33:50 GMT</pubDate>
      <description>&lt;p&gt;
_strandGroup = this.listViewGroups.SelectedItem as StrandGroup;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=3d627c61-9c2d-41f9-91b5-120c2eb38b88" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,3d627c61-9c2d-41f9-91b5-120c2eb38b88.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=b01eda95-04b4-4c37-bb1d-24229973d6b3</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,b01eda95-04b4-4c37-bb1d-24229973d6b3.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,b01eda95-04b4-4c37-bb1d-24229973d6b3.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=b01eda95-04b4-4c37-bb1d-24229973d6b3</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
&lt;GridViewColumn Header="Strand Type"&gt;<br />
     &lt;GridViewColumn.CellTemplate&gt;<br />
             &lt;DataTemplate&gt;<br />
                   
&lt;ComboBox SelectedValue="{Binding Path=StrandId}" SelectedValuePath="Id" DisplayMemberPath="Name"
Width="120" GotFocus="ComboBox_GotFocus" SelectionChanged="ComboBoxStrandType_SelectionChanged"<br />
                                            <strong> ItemsSource="{Binding
RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:LongitudinalStrandGroupsAssist}},</strong><strong>Path=MPrestressedStrands}"/&gt;<br /></strong>            
&lt;DataTemplate&gt;<br />
     &lt;/GridViewColumn.CellTemplate&gt;<br />
&lt;/GridViewColumn&gt;
</p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=b01eda95-04b4-4c37-bb1d-24229973d6b3" />
      </body>
      <title>data binds to the properties in the same class.</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,b01eda95-04b4-4c37-bb1d-24229973d6b3.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,b01eda95-04b4-4c37-bb1d-24229973d6b3.aspx</link>
      <pubDate>Wed, 16 Jul 2008 14:32:24 GMT</pubDate>
      <description>&lt;p&gt;
&amp;lt;GridViewColumn Header="Strand Type"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;GridViewColumn.CellTemplate&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DataTemplate&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ComboBox SelectedValue="{Binding Path=StrandId}" SelectedValuePath="Id" DisplayMemberPath="Name"
Width="120" GotFocus="ComboBox_GotFocus" SelectionChanged="ComboBoxStrandType_SelectionChanged"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt; ItemsSource="{Binding
RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:LongitudinalStrandGroupsAssist}},&lt;/strong&gt; &lt;strong&gt;Path=MPrestressedStrands}"/&amp;gt;&lt;br&gt;
&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;DataTemplate&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/GridViewColumn.CellTemplate&amp;gt;&lt;br&gt;
&amp;lt;/GridViewColumn&amp;gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=b01eda95-04b4-4c37-bb1d-24229973d6b3" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,b01eda95-04b4-4c37-bb1d-24229973d6b3.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=387bc7bd-7cbb-42cc-8e3d-1fbcb94e0b66</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,387bc7bd-7cbb-42cc-8e3d-1fbcb94e0b66.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,387bc7bd-7cbb-42cc-8e3d-1fbcb94e0b66.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=387bc7bd-7cbb-42cc-8e3d-1fbcb94e0b66</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://msdn.microsoft.com/en-us/magazine/cc700358.aspx" href="http://msdn.microsoft.com/en-us/magazine/cc700358.aspx">http://msdn.microsoft.com/en-us/magazine/cc700358.aspx</a>
        </p>
        <p>
By Josh Smith
</p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=387bc7bd-7cbb-42cc-8e3d-1fbcb94e0b66" />
      </body>
      <title>Customize Data Display with Data Binding and WPF</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,387bc7bd-7cbb-42cc-8e3d-1fbcb94e0b66.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,387bc7bd-7cbb-42cc-8e3d-1fbcb94e0b66.aspx</link>
      <pubDate>Wed, 09 Jul 2008 19:43:44 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://msdn.microsoft.com/en-us/magazine/cc700358.aspx" href="http://msdn.microsoft.com/en-us/magazine/cc700358.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/cc700358.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
By Josh Smith
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=387bc7bd-7cbb-42cc-8e3d-1fbcb94e0b66" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,387bc7bd-7cbb-42cc-8e3d-1fbcb94e0b66.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=f8a0f512-0a4f-4bfc-9e51-d913159f4703</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,f8a0f512-0a4f-4bfc-9e51-d913159f4703.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,f8a0f512-0a4f-4bfc-9e51-d913159f4703.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=f8a0f512-0a4f-4bfc-9e51-d913159f4703</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
From <a title="http://dotnet.org.za/rudi/archive/2008/03/25/10-things-i-didn-t-know-about-wpf-data-binding.aspx" href="http://dotnet.org.za/rudi/archive/2008/03/25/10-things-i-didn-t-know-about-wpf-data-binding.aspx">http://dotnet.org.za/rudi/archive/2008/03/25/10-things-i-didn-t-know-about-wpf-data-binding.aspx</a></p>
        <p>
  
</p>
        <p>
1) <strong>Binding path "(TextBox.Text)" vs "Text"?</strong></p>
        <p>
If you bind to a path called Text, WPF uses reflection to resolve the name. If you
use the class-qualified name, binding avoids the reflection performance hit. Class-qualified
names also allows binding to attached properties! 
</p>
        <p>
2) <strong>WPF doesn't raise exceptions to notify you about data binding problems</strong></p>
        <p>
All binding errors are output as trace information and NOT exceptions! 
</p>
        <p>
          <a href="http://www.beacosta.com/">Beatriz Costa</a> (Who else) has a excellent article
about <a href="http://www.beacosta.com/blog/?p=52">this</a></p>
        <p>
3) <strong>Why use OneWayToSource binding mode?</strong></p>
        <p>
Well, the target object must always be a DP! The most common use of OneWayToSource
mode is to by-pass this restriction! The source doesn't need to be a DP and effectively
using OneWayToSource reverses the binding direction. 
</p>
        <p>
A perfect example is Run, it's text property is not backed by a DP! 
</p>
        <p>
4) <strong>Default binding mode?</strong></p>
        <p>
Not all DP's have the same default binding mode!!! 
</p>
        <p>
If the binding mode is two-way, but the CLR property that it is bound to is read-only...
will cause problems! just keep in mind that you can't assume what the binding mode
is!!! 
</p>
        <p>
It is always a good idea to explicitly specify your binding mode. Also remember that
OneWay is slightly lighter than TwoWay! 
</p>
        <p>
5) <strong>RelativeSourceMode.PreviousData</strong></p>
        <p>
If you bind to a collection of prices and need to show the change from the previous
price to the current price then this little trick can be very useful... Pass the current
item and the following binding into a IMultiValueConverter converter
</p>
        <pre>{Binding RelativeSource={RelativeSource PreviousData}}</pre>
        <p>
The multi value converter now just need to work out what the difference is! 
</p>
        <p>
6) <strong>RelativeSourceMode.FindAncestor</strong></p>
        <p>
This is a very cool hack I found... Lets assume that you have a ListBox showing data.
Normally if you have a TextBlock inside your DataTemplate and you don't supply it
with a foreground color, then it would inherit the parents Foreground property. What
is cool about this is that then when you click on the item, the font color would change
from black to white! Now assume that your DataTemplate also contains a custom control
that do not rely on the Foreground property to determine its color (As a example,
I will use a Ellipse which has a Fill and not a Foreground/Background). If I add a
Ellipse to this DataTemplate and  I do not set its fill, it would stay blank.
Even if I give it a Fill color, it will fill with this color but if I now select this
ListBox item, it will stay the provided color! 
</p>
        <p>
So how do I make my ellipse inherit the Foreground color and more importantly, how
do I make it change to white once selected? Binding its Fill with the following
</p>
        <pre>{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBoxItem}}, Path=Foreground}</pre>
        <p>
Now, it will inherit the parents Foreground and also change once selected... 
</p>
        <p>
7) <strong>Binding a ListBox to a custom object, What gets displayed in the ListBox?</strong></p>
        <p>
When binding to a custom object, determining what is displayed in the ListBox can
be one of 3 options 
</p>
        <ol>
          <li>
Set the DisplayMemberPath on the ListBox to a path 
</li>
          <li>
Create a DataTemplate 
</li>
          <li>
Override the ToString() on the custom object. If no DisplayMemberPath or DataTemplate
is found, the ToString() is called on the custom object. 
</li>
        </ol>
        <p>
8) <strong>{Binding Path=/}</strong></p>
        <p>
Bind to the current item in the view! Just remember to set IsSynchronizedWithCurrentItem
to true 
</p>
        <p>
[<strong>UPDATE</strong>] While reading <a href="http://www.interact-sw.co.uk/iangblog/2007/09/03/bindtocurrent">Ian
Griffiths</a> blog, I found a entry detailing this behaviour in WPF databinding 
</p>
        <p>
9) <strong>Binding has a constructor that take Path as a parameter</strong></p>
        <p>
This is just a small shortcut
</p>
        <pre>{Binding Path=Name}</pre>
        <p>
Can be written like this
</p>
        <pre>{Binding Name}</pre>
        <p>
10) <strong>{Binding}</strong></p>
        <p>
This looks a little weird but all this means is that the source is defined somewhere
up the tree... common place is Window.DataContext. By setting the DataContext to a
collection, I can now add a ListBox to the visual tree and then binding this ListBox's
ItemsSource to {Binding}. This will tell the ListBox that its ItemsSource is the DataContext
of the Window!
</p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=f8a0f512-0a4f-4bfc-9e51-d913159f4703" />
      </body>
      <title>10 things I didn't know about WPF data binding</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,f8a0f512-0a4f-4bfc-9e51-d913159f4703.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,f8a0f512-0a4f-4bfc-9e51-d913159f4703.aspx</link>
      <pubDate>Fri, 20 Jun 2008 17:39:03 GMT</pubDate>
      <description>&lt;p&gt;
From &lt;a title="http://dotnet.org.za/rudi/archive/2008/03/25/10-things-i-didn-t-know-about-wpf-data-binding.aspx" href="http://dotnet.org.za/rudi/archive/2008/03/25/10-things-i-didn-t-know-about-wpf-data-binding.aspx"&gt;http://dotnet.org.za/rudi/archive/2008/03/25/10-things-i-didn-t-know-about-wpf-data-binding.aspx&lt;/a&gt; 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
1) &lt;strong&gt;Binding path "(TextBox.Text)" vs "Text"?&lt;/strong&gt; 
&lt;p&gt;
If you bind to a path called Text, WPF uses reflection to resolve the name. If you
use the class-qualified name, binding avoids the reflection performance hit. Class-qualified
names also allows binding to attached properties! 
&lt;p&gt;
2) &lt;strong&gt;WPF doesn't raise exceptions to notify you about data binding problems&lt;/strong&gt; 
&lt;p&gt;
All binding errors are output as trace information and NOT exceptions! 
&lt;p&gt;
&lt;a href="http://www.beacosta.com/"&gt;Beatriz Costa&lt;/a&gt; (Who else) has a excellent article
about &lt;a href="http://www.beacosta.com/blog/?p=52"&gt;this&lt;/a&gt; 
&lt;p&gt;
3) &lt;strong&gt;Why use OneWayToSource binding mode?&lt;/strong&gt; 
&lt;p&gt;
Well, the target object must always be a DP! The most common use of OneWayToSource
mode is to by-pass this restriction! The source doesn't need to be a DP and effectively
using OneWayToSource reverses the binding direction. 
&lt;p&gt;
A perfect example is Run, it's text property is not backed by a DP! 
&lt;p&gt;
4) &lt;strong&gt;Default binding mode?&lt;/strong&gt; 
&lt;p&gt;
Not all DP's have the same default binding mode!!! 
&lt;p&gt;
If the binding mode is two-way, but the CLR property that it is bound to is read-only...
will cause problems! just keep in mind that you can't assume what the binding mode
is!!! 
&lt;p&gt;
It is always a good idea to explicitly specify your binding mode. Also remember that
OneWay is slightly lighter than TwoWay! 
&lt;p&gt;
5) &lt;strong&gt;RelativeSourceMode.PreviousData&lt;/strong&gt; 
&lt;p&gt;
If you bind to a collection of prices and need to show the change from the previous
price to the current price then this little trick can be very useful... Pass the current
item and the following binding into a IMultiValueConverter converter&lt;pre&gt;{Binding RelativeSource={RelativeSource PreviousData}}&lt;/pre&gt;
&lt;p&gt;
The multi value converter now just need to work out what the difference is! 
&lt;p&gt;
6) &lt;strong&gt;RelativeSourceMode.FindAncestor&lt;/strong&gt; 
&lt;p&gt;
This is a very cool hack I found... Lets assume that you have a ListBox showing data.
Normally if you have a TextBlock inside your DataTemplate and you don't supply it
with a foreground color, then it would inherit the parents Foreground property. What
is cool about this is that then when you click on the item, the font color would change
from black to white! Now assume that your DataTemplate also contains a custom control
that do not rely on the Foreground property to determine its color (As a example,
I will use a Ellipse which has a Fill and not a Foreground/Background). If I add a
Ellipse to this DataTemplate and&amp;nbsp; I do not set its fill, it would stay blank.
Even if I give it a Fill color, it will fill with this color but if I now select this
ListBox item, it will stay the provided color! 
&lt;p&gt;
So how do I make my ellipse inherit the Foreground color and more importantly, how
do I make it change to white once selected? Binding its Fill with the following&lt;pre&gt;{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBoxItem}}, Path=Foreground}&lt;/pre&gt;
&lt;p&gt;
Now, it will inherit the parents Foreground and also change once selected... 
&lt;p&gt;
7) &lt;strong&gt;Binding a ListBox to a custom object, What gets displayed in the ListBox?&lt;/strong&gt; 
&lt;p&gt;
When binding to a custom object, determining what is displayed in the ListBox can
be one of 3 options 
&lt;ol&gt;
&lt;li&gt;
Set the DisplayMemberPath on the ListBox to a path 
&lt;li&gt;
Create a DataTemplate 
&lt;li&gt;
Override the ToString() on the custom object. If no DisplayMemberPath or DataTemplate
is found, the ToString() is called on the custom object. 
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
8) &lt;strong&gt;{Binding Path=/}&lt;/strong&gt; 
&lt;p&gt;
Bind to the current item in the view! Just remember to set IsSynchronizedWithCurrentItem
to true 
&lt;p&gt;
[&lt;strong&gt;UPDATE&lt;/strong&gt;] While reading &lt;a href="http://www.interact-sw.co.uk/iangblog/2007/09/03/bindtocurrent"&gt;Ian
Griffiths&lt;/a&gt; blog, I found a entry detailing this behaviour in WPF databinding 
&lt;p&gt;
9) &lt;strong&gt;Binding has a constructor that take Path as a parameter&lt;/strong&gt; 
&lt;p&gt;
This is just a small shortcut&lt;pre&gt;{Binding Path=Name}&lt;/pre&gt;
&lt;p&gt;
Can be written like this&lt;pre&gt;{Binding Name}&lt;/pre&gt;
&lt;p&gt;
10) &lt;strong&gt;{Binding}&lt;/strong&gt; 
&lt;p&gt;
This looks a little weird but all this means is that the source is defined somewhere
up the tree... common place is Window.DataContext. By setting the DataContext to a
collection, I can now add a ListBox to the visual tree and then binding this ListBox's
ItemsSource to {Binding}. This will tell the ListBox that its ItemsSource is the DataContext
of the Window!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=f8a0f512-0a4f-4bfc-9e51-d913159f4703" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,f8a0f512-0a4f-4bfc-9e51-d913159f4703.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=512d52bd-cde0-4462-96ff-22f504421239</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,512d52bd-cde0-4462-96ff-22f504421239.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,512d52bd-cde0-4462-96ff-22f504421239.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=512d52bd-cde0-4462-96ff-22f504421239</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
From BenCon's WebLog:
</p>
        <p>
I <a title="http://blogs.msdn.com/bencon/archive/2006/01/05/509991.aspx" href="http://blogs.msdn.com/bencon/archive/2006/01/05/509991.aspx">http://blogs.msdn.com/bencon/archive/2006/01/05/509991.aspx</a></p>
        <p>
II <a title="http://blogs.msdn.com/bencon/archive/2006/01/06/510355.aspx" href="http://blogs.msdn.com/bencon/archive/2006/01/06/510355.aspx">http://blogs.msdn.com/bencon/archive/2006/01/06/510355.aspx</a></p>
        <p>
III <a title="http://blogs.msdn.com/bencon/archive/2006/01/07/510530.aspx" href="http://blogs.msdn.com/bencon/archive/2006/01/07/510530.aspx">http://blogs.msdn.com/bencon/archive/2006/01/07/510530.aspx</a></p>
        <p>
IV <a title="http://blogs.msdn.com/bencon/archive/2006/12/09/iscrollinfo-tutorial-part-iv.aspx" href="http://blogs.msdn.com/bencon/archive/2006/12/09/iscrollinfo-tutorial-part-iv.aspx">http://blogs.msdn.com/bencon/archive/2006/12/09/iscrollinfo-tutorial-part-iv.aspx</a></p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=512d52bd-cde0-4462-96ff-22f504421239" />
      </body>
      <title>IScrollInfo</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,512d52bd-cde0-4462-96ff-22f504421239.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,512d52bd-cde0-4462-96ff-22f504421239.aspx</link>
      <pubDate>Tue, 17 Jun 2008 20:52:12 GMT</pubDate>
      <description>&lt;p&gt;
From BenCon's WebLog:
&lt;/p&gt;
&lt;p&gt;
I &lt;a title="http://blogs.msdn.com/bencon/archive/2006/01/05/509991.aspx" href="http://blogs.msdn.com/bencon/archive/2006/01/05/509991.aspx"&gt;http://blogs.msdn.com/bencon/archive/2006/01/05/509991.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
II &lt;a title="http://blogs.msdn.com/bencon/archive/2006/01/06/510355.aspx" href="http://blogs.msdn.com/bencon/archive/2006/01/06/510355.aspx"&gt;http://blogs.msdn.com/bencon/archive/2006/01/06/510355.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
III &lt;a title="http://blogs.msdn.com/bencon/archive/2006/01/07/510530.aspx" href="http://blogs.msdn.com/bencon/archive/2006/01/07/510530.aspx"&gt;http://blogs.msdn.com/bencon/archive/2006/01/07/510530.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
IV &lt;a title="http://blogs.msdn.com/bencon/archive/2006/12/09/iscrollinfo-tutorial-part-iv.aspx" href="http://blogs.msdn.com/bencon/archive/2006/12/09/iscrollinfo-tutorial-part-iv.aspx"&gt;http://blogs.msdn.com/bencon/archive/2006/12/09/iscrollinfo-tutorial-part-iv.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=512d52bd-cde0-4462-96ff-22f504421239" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,512d52bd-cde0-4462-96ff-22f504421239.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=417d5714-23cc-4c77-9208-07e40e5928a0</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,417d5714-23cc-4c77-9208-07e40e5928a0.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,417d5714-23cc-4c77-9208-07e40e5928a0.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=417d5714-23cc-4c77-9208-07e40e5928a0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://geekswithblogs.net/thibbard/archive/2008/05/20/wpf---collectionviewsource-that-updates-automatically.aspx">http://geekswithblogs.net/thibbard/archive/2008/05/20/wpf---collectionviewsource-that-updates-automatically.aspx</a>
        </p>
        <pre class="csharpcode">
          <span class="kwrd">public</span>
          <span class="kwrd">class</span> AutoRefreshCollectionViewSource
: CollectionViewSource { <span class="kwrd">protected</span><span class="kwrd">override</span><span class="kwrd">void</span> OnSourceChanged(<span class="kwrd">object</span> oldSource, <span class="kwrd">object</span> newSource)
{ <span class="kwrd">if</span> (oldSource != <span class="kwrd">null</span>) { SubscribeSourceEvents(oldSource, <span class="kwrd">true</span>);
} <span class="kwrd">if</span> (newSource != <span class="kwrd">null</span>) { SubscribeSourceEvents(newSource, <span class="kwrd">false</span>);
} <span class="kwrd">base</span>.OnSourceChanged(oldSource, newSource); } <span class="kwrd">private</span><span class="kwrd">void</span> Item_PropertyChanged(<span class="kwrd">object</span> sender,
PropertyChangedEventArgs e) { <span class="kwrd">bool</span> refresh = <span class="kwrd">false</span>; <span class="kwrd">foreach</span> (SortDescription
sort <span class="kwrd">in</span> SortDescriptions) { <span class="kwrd">if</span> (sort.PropertyName
== e.PropertyName) { refresh = <span class="kwrd">true</span>; <span class="kwrd">break</span>;
} } <span class="kwrd">if</span> (!refresh) { <span class="kwrd">foreach</span> (GroupDescription
group <span class="kwrd">in</span> GroupDescriptions) { PropertyGroupDescription propertyGroup
= group <span class="kwrd">as</span> PropertyGroupDescription; <span class="kwrd">if</span> (propertyGroup
!= <span class="kwrd">null</span> &amp;&amp; propertyGroup.PropertyName == e.PropertyName)
{ refresh = <span class="kwrd">true</span>; <span class="kwrd">break</span>; } } } <span class="kwrd">if</span> (refresh)
{ View.Refresh(); } } <span class="kwrd">private</span><span class="kwrd">void</span> Source_CollectionChanged(<span class="kwrd">object</span> sender,
NotifyCollectionChangedEventArgs e) { <span class="kwrd">if</span> (e.Action == NotifyCollectionChangedAction.Add)
{ SubscribeItemsEvents(e.NewItems, <span class="kwrd">false</span>); } <span class="kwrd">else</span><span class="kwrd">if</span> (e.Action
== NotifyCollectionChangedAction.Remove) { SubscribeItemsEvents(e.OldItems, <span class="kwrd">true</span>);
} <span class="kwrd">else</span> { <span class="rem">// TODO: Support this</span> Debug.Assert(<span class="kwrd">false</span>);
} } <span class="kwrd">private</span><span class="kwrd">void</span> SubscribeItemEvents(<span class="kwrd">object</span> item, <span class="kwrd">bool</span> remove)
{ INotifyPropertyChanged notify = item <span class="kwrd">as</span> INotifyPropertyChanged; <span class="kwrd">if</span> (notify
!= <span class="kwrd">null</span>) { <span class="kwrd">if</span> (remove) { notify.PropertyChanged
-= Item_PropertyChanged; } <span class="kwrd">else</span> { notify.PropertyChanged
+= Item_PropertyChanged; } } } <span class="kwrd">private</span><span class="kwrd">void</span> SubscribeItemsEvents(IEnumerable
items, <span class="kwrd">bool</span> remove) { <span class="kwrd">foreach</span> (<span class="kwrd">object</span> item <span class="kwrd">in</span> items)
{ SubscribeItemEvents(item, remove); } } <span class="kwrd">private</span><span class="kwrd">void</span> SubscribeSourceEvents(<span class="kwrd">object</span> source, <span class="kwrd">bool</span> remove)
{ INotifyCollectionChanged notify = source <span class="kwrd">as</span> INotifyCollectionChanged; <span class="kwrd">if</span> (notify
!= <span class="kwrd">null</span>) { <span class="kwrd">if</span> (remove) { notify.CollectionChanged
-= Source_CollectionChanged; } <span class="kwrd">else</span> { notify.CollectionChanged
+= Source_CollectionChanged; } } SubscribeItemsEvents((IEnumerable)source, remove);
} }</pre>
        <style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
        <p>
Using the CollectionViewSource is a good way of binding to a datasource and letting
the XAML determine the sorting and grouping of the data. However, as your datasource
changes, the grouping and sorting is not automatically "re-calculated", forcing your
code to be smarter that it should be. I found a <a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2847501&amp;SiteID=1">class
today on MSDN forums that inherits from CollectionViewSource and adds automatic refresh
capabilities</a>. This code is smart enough to resort your items, regroup your items
and even add new groupings as needed.<br />
Some good CollectionViewSource links:
</p>
        <ul>
          <li>
            <a href="http://msdn.microsoft.com/en-us/library/system.windows.data.collectionviewsource.aspx">MSDN
documentation</a>
          </li>
        </ul>
        <ul>
          <li>
            <a href="http://www.beacosta.com/blog/?p=17">Basic grouping and sorting</a>
          </li>
          <li>
            <a href="http://www.beacosta.com/blog/?p=19">custom grouping using IValueConverter</a>
          </li>
          <li>
            <a href="http://www.beacosta.com/blog/?p=24">Custom sorting using IComparer</a>
          </li>
        </ul>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=417d5714-23cc-4c77-9208-07e40e5928a0" />
      </body>
      <title>CollectionViewSource</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,417d5714-23cc-4c77-9208-07e40e5928a0.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,417d5714-23cc-4c77-9208-07e40e5928a0.aspx</link>
      <pubDate>Mon, 02 Jun 2008 19:49:01 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://geekswithblogs.net/thibbard/archive/2008/05/20/wpf---collectionviewsource-that-updates-automatically.aspx"&gt;http://geekswithblogs.net/thibbard/archive/2008/05/20/wpf---collectionviewsource-that-updates-automatically.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; AutoRefreshCollectionViewSource
: CollectionViewSource { &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; OnSourceChanged(&lt;span class="kwrd"&gt;object&lt;/span&gt; oldSource, &lt;span class="kwrd"&gt;object&lt;/span&gt; newSource)
{ &lt;span class="kwrd"&gt;if&lt;/span&gt; (oldSource != &lt;span class="kwrd"&gt;null&lt;/span&gt;) { SubscribeSourceEvents(oldSource, &lt;span class="kwrd"&gt;true&lt;/span&gt;);
} &lt;span class="kwrd"&gt;if&lt;/span&gt; (newSource != &lt;span class="kwrd"&gt;null&lt;/span&gt;) { SubscribeSourceEvents(newSource, &lt;span class="kwrd"&gt;false&lt;/span&gt;);
} &lt;span class="kwrd"&gt;base&lt;/span&gt;.OnSourceChanged(oldSource, newSource); } &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Item_PropertyChanged(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender,
PropertyChangedEventArgs e) { &lt;span class="kwrd"&gt;bool&lt;/span&gt; refresh = &lt;span class="kwrd"&gt;false&lt;/span&gt;; &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (SortDescription
sort &lt;span class="kwrd"&gt;in&lt;/span&gt; SortDescriptions) { &lt;span class="kwrd"&gt;if&lt;/span&gt; (sort.PropertyName
== e.PropertyName) { refresh = &lt;span class="kwrd"&gt;true&lt;/span&gt;; &lt;span class="kwrd"&gt;break&lt;/span&gt;;
} } &lt;span class="kwrd"&gt;if&lt;/span&gt; (!refresh) { &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (GroupDescription
group &lt;span class="kwrd"&gt;in&lt;/span&gt; GroupDescriptions) { PropertyGroupDescription propertyGroup
= group &lt;span class="kwrd"&gt;as&lt;/span&gt; PropertyGroupDescription; &lt;span class="kwrd"&gt;if&lt;/span&gt; (propertyGroup
!= &lt;span class="kwrd"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; propertyGroup.PropertyName == e.PropertyName)
{ refresh = &lt;span class="kwrd"&gt;true&lt;/span&gt;; &lt;span class="kwrd"&gt;break&lt;/span&gt;; } } } &lt;span class="kwrd"&gt;if&lt;/span&gt; (refresh)
{ View.Refresh(); } } &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Source_CollectionChanged(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender,
NotifyCollectionChangedEventArgs e) { &lt;span class="kwrd"&gt;if&lt;/span&gt; (e.Action == NotifyCollectionChangedAction.Add)
{ SubscribeItemsEvents(e.NewItems, &lt;span class="kwrd"&gt;false&lt;/span&gt;); } &lt;span class="kwrd"&gt;else&lt;/span&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt; (e.Action
== NotifyCollectionChangedAction.Remove) { SubscribeItemsEvents(e.OldItems, &lt;span class="kwrd"&gt;true&lt;/span&gt;);
} &lt;span class="kwrd"&gt;else&lt;/span&gt; { &lt;span class="rem"&gt;// TODO: Support this&lt;/span&gt; Debug.Assert(&lt;span class="kwrd"&gt;false&lt;/span&gt;);
} } &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; SubscribeItemEvents(&lt;span class="kwrd"&gt;object&lt;/span&gt; item, &lt;span class="kwrd"&gt;bool&lt;/span&gt; remove)
{ INotifyPropertyChanged notify = item &lt;span class="kwrd"&gt;as&lt;/span&gt; INotifyPropertyChanged; &lt;span class="kwrd"&gt;if&lt;/span&gt; (notify
!= &lt;span class="kwrd"&gt;null&lt;/span&gt;) { &lt;span class="kwrd"&gt;if&lt;/span&gt; (remove) { notify.PropertyChanged
-= Item_PropertyChanged; } &lt;span class="kwrd"&gt;else&lt;/span&gt; { notify.PropertyChanged
+= Item_PropertyChanged; } } } &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; SubscribeItemsEvents(IEnumerable
items, &lt;span class="kwrd"&gt;bool&lt;/span&gt; remove) { &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (&lt;span class="kwrd"&gt;object&lt;/span&gt; item &lt;span class="kwrd"&gt;in&lt;/span&gt; items)
{ SubscribeItemEvents(item, remove); } } &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; SubscribeSourceEvents(&lt;span class="kwrd"&gt;object&lt;/span&gt; source, &lt;span class="kwrd"&gt;bool&lt;/span&gt; remove)
{ INotifyCollectionChanged notify = source &lt;span class="kwrd"&gt;as&lt;/span&gt; INotifyCollectionChanged; &lt;span class="kwrd"&gt;if&lt;/span&gt; (notify
!= &lt;span class="kwrd"&gt;null&lt;/span&gt;) { &lt;span class="kwrd"&gt;if&lt;/span&gt; (remove) { notify.CollectionChanged
-= Source_CollectionChanged; } &lt;span class="kwrd"&gt;else&lt;/span&gt; { notify.CollectionChanged
+= Source_CollectionChanged; } } SubscribeItemsEvents((IEnumerable)source, remove);
} }&lt;/pre&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
&lt;p&gt;
Using the CollectionViewSource is a good way of binding to a datasource and letting
the XAML determine the sorting and grouping of the data. However, as your datasource
changes, the grouping and sorting is not automatically "re-calculated", forcing your
code to be smarter that it should be. I found a &lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2847501&amp;amp;SiteID=1"&gt;class
today on MSDN forums that inherits from CollectionViewSource and adds automatic refresh
capabilities&lt;/a&gt;. This code is smart enough to resort your items, regroup your items
and even add new groupings as needed.&lt;br&gt;
Some good CollectionViewSource links:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.data.collectionviewsource.aspx"&gt;MSDN
documentation&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.beacosta.com/blog/?p=17"&gt;Basic grouping and sorting&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.beacosta.com/blog/?p=19"&gt;custom grouping using IValueConverter&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.beacosta.com/blog/?p=24"&gt;Custom sorting using IComparer&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=417d5714-23cc-4c77-9208-07e40e5928a0" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,417d5714-23cc-4c77-9208-07e40e5928a0.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=aed87b7d-744d-495f-b5b4-37e45a907775</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,aed87b7d-744d-495f-b5b4-37e45a907775.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,aed87b7d-744d-495f-b5b4-37e45a907775.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=aed87b7d-744d-495f-b5b4-37e45a907775</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://msdn.microsoft.com/en-us/library/aa970677.aspx" href="http://msdn.microsoft.com/en-us/library/aa970677.aspx">http://msdn.microsoft.com/en-us/library/aa970677.aspx</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=aed87b7d-744d-495f-b5b4-37e45a907775" />
      </body>
      <title>Use Special Characters in XAML</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,aed87b7d-744d-495f-b5b4-37e45a907775.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,aed87b7d-744d-495f-b5b4-37e45a907775.aspx</link>
      <pubDate>Thu, 29 May 2008 21:49:28 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://msdn.microsoft.com/en-us/library/aa970677.aspx" href="http://msdn.microsoft.com/en-us/library/aa970677.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa970677.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=aed87b7d-744d-495f-b5b4-37e45a907775" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,aed87b7d-744d-495f-b5b4-37e45a907775.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=3c5f9b6a-4d19-4a4c-9eca-9c5488c33806</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,3c5f9b6a-4d19-4a4c-9eca-9c5488c33806.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,3c5f9b6a-4d19-4a4c-9eca-9c5488c33806.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=3c5f9b6a-4d19-4a4c-9eca-9c5488c33806</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://www.cnblogs.com/pincelee/archive/2006/09/07/497259.html" href="http://www.cnblogs.com/pincelee/archive/2006/09/07/497259.html">http://www.cnblogs.com/pincelee/archive/2006/09/07/497259.html</a>
        </p>
        <p>
          <a title="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2509360&amp;SiteID=1" href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2509360&amp;SiteID=1">http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2509360&amp;SiteID=1</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=3c5f9b6a-4d19-4a4c-9eca-9c5488c33806" />
      </body>
      <title>GroupStype of ListView</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,3c5f9b6a-4d19-4a4c-9eca-9c5488c33806.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,3c5f9b6a-4d19-4a4c-9eca-9c5488c33806.aspx</link>
      <pubDate>Thu, 29 May 2008 21:30:10 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://www.cnblogs.com/pincelee/archive/2006/09/07/497259.html" href="http://www.cnblogs.com/pincelee/archive/2006/09/07/497259.html"&gt;http://www.cnblogs.com/pincelee/archive/2006/09/07/497259.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2509360&amp;amp;SiteID=1" href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2509360&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2509360&amp;amp;SiteID=1&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=3c5f9b6a-4d19-4a4c-9eca-9c5488c33806" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,3c5f9b6a-4d19-4a4c-9eca-9c5488c33806.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=776912aa-667a-4f20-9238-e34231b74472</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,776912aa-667a-4f20-9238-e34231b74472.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,776912aa-667a-4f20-9238-e34231b74472.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=776912aa-667a-4f20-9238-e34231b74472</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://msdn.microsoft.com/en-us/library/system.windows.controls.virtualizingpanel.aspx" href="http://msdn.microsoft.com/en-us/library/system.windows.controls.virtualizingpanel.aspx">http://msdn.microsoft.com/en-us/library/system.windows.controls.virtualizingpanel.aspx</a>
        </p>
        <p>
1. <a title="http://blogs.msdn.com/dancre/archive/2006/02/06/implementing-a-virtualized-panel-in-wpf-avalon.aspx" href="http://blogs.msdn.com/dancre/archive/2006/02/06/implementing-a-virtualized-panel-in-wpf-avalon.aspx">http://blogs.msdn.com/dancre/archive/2006/02/06/implementing-a-virtualized-panel-in-wpf-avalon.aspx</a></p>
        <p>
2. <a title="http://blogs.msdn.com/dancre/archive/2006/02/13/531550.aspx" href="http://blogs.msdn.com/dancre/archive/2006/02/13/531550.aspx">http://blogs.msdn.com/dancre/archive/2006/02/13/531550.aspx</a></p>
        <p>
3. <a title="http://blogs.msdn.com/dancre/archive/2006/02/14/532333.aspx" href="http://blogs.msdn.com/dancre/archive/2006/02/14/532333.aspx">http://blogs.msdn.com/dancre/archive/2006/02/14/532333.aspx</a></p>
        <p>
4. <a title="http://blogs.msdn.com/dancre/archive/2006/02/16/533870.aspx" href="http://blogs.msdn.com/dancre/archive/2006/02/16/533870.aspx">http://blogs.msdn.com/dancre/archive/2006/02/16/533870.aspx</a></p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=776912aa-667a-4f20-9238-e34231b74472" />
      </body>
      <title>Virtualized Panel in WPF</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,776912aa-667a-4f20-9238-e34231b74472.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,776912aa-667a-4f20-9238-e34231b74472.aspx</link>
      <pubDate>Tue, 27 May 2008 22:06:47 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://msdn.microsoft.com/en-us/library/system.windows.controls.virtualizingpanel.aspx" href="http://msdn.microsoft.com/en-us/library/system.windows.controls.virtualizingpanel.aspx"&gt;http://msdn.microsoft.com/en-us/library/system.windows.controls.virtualizingpanel.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
1. &lt;a title="http://blogs.msdn.com/dancre/archive/2006/02/06/implementing-a-virtualized-panel-in-wpf-avalon.aspx" href="http://blogs.msdn.com/dancre/archive/2006/02/06/implementing-a-virtualized-panel-in-wpf-avalon.aspx"&gt;http://blogs.msdn.com/dancre/archive/2006/02/06/implementing-a-virtualized-panel-in-wpf-avalon.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
2. &lt;a title="http://blogs.msdn.com/dancre/archive/2006/02/13/531550.aspx" href="http://blogs.msdn.com/dancre/archive/2006/02/13/531550.aspx"&gt;http://blogs.msdn.com/dancre/archive/2006/02/13/531550.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
3. &lt;a title="http://blogs.msdn.com/dancre/archive/2006/02/14/532333.aspx" href="http://blogs.msdn.com/dancre/archive/2006/02/14/532333.aspx"&gt;http://blogs.msdn.com/dancre/archive/2006/02/14/532333.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
4. &lt;a title="http://blogs.msdn.com/dancre/archive/2006/02/16/533870.aspx" href="http://blogs.msdn.com/dancre/archive/2006/02/16/533870.aspx"&gt;http://blogs.msdn.com/dancre/archive/2006/02/16/533870.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=776912aa-667a-4f20-9238-e34231b74472" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,776912aa-667a-4f20-9238-e34231b74472.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=b51eece3-7b80-4241-8785-981b96b1b051</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,b51eece3-7b80-4241-8785-981b96b1b051.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,b51eece3-7b80-4241-8785-981b96b1b051.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=b51eece3-7b80-4241-8785-981b96b1b051</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://msdn.microsoft.com/en-us/library/aa969773.aspx#" href="http://msdn.microsoft.com/en-us/library/aa969773.aspx#">http://msdn.microsoft.com/en-us/library/aa969773.aspx#</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=b51eece3-7b80-4241-8785-981b96b1b051" />
      </body>
      <title>WPF Dialog Boxes Overview</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,b51eece3-7b80-4241-8785-981b96b1b051.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,b51eece3-7b80-4241-8785-981b96b1b051.aspx</link>
      <pubDate>Wed, 21 May 2008 18:36:47 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://msdn.microsoft.com/en-us/library/aa969773.aspx#" href="http://msdn.microsoft.com/en-us/library/aa969773.aspx#"&gt;http://msdn.microsoft.com/en-us/library/aa969773.aspx#&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=b51eece3-7b80-4241-8785-981b96b1b051" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,b51eece3-7b80-4241-8785-981b96b1b051.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=b6355d44-bcb8-46c1-862b-d3c7137026e9</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,b6355d44-bcb8-46c1-862b-d3c7137026e9.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,b6355d44-bcb8-46c1-862b-d3c7137026e9.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=b6355d44-bcb8-46c1-862b-d3c7137026e9</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Databinding issue in WPF: with solution
</p>
        <p>
          <a title="http://www.lhotka.net/weblog/DataBindingIssueInWPFWithSolution.aspx#a89bf0c78-2bfc-4872-89b3-5499c4cbd0ae" href="http://www.lhotka.net/weblog/DataBindingIssueInWPFWithSolution.aspx#a89bf0c78-2bfc-4872-89b3-5499c4cbd0ae">http://www.lhotka.net/weblog/DataBindingIssueInWPFWithSolution.aspx#a89bf0c78-2bfc-4872-89b3-5499c4cbd0ae</a>
        </p>
        <p>
(Important: set UpdateSourceTrigger to LostFocus for textbox)
</p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=b6355d44-bcb8-46c1-862b-d3c7137026e9" />
      </body>
      <title>Bug in WPF Databinding</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,b6355d44-bcb8-46c1-862b-d3c7137026e9.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,b6355d44-bcb8-46c1-862b-d3c7137026e9.aspx</link>
      <pubDate>Thu, 17 Apr 2008 19:56:42 GMT</pubDate>
      <description>&lt;p&gt;
Databinding issue in WPF: with solution
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.lhotka.net/weblog/DataBindingIssueInWPFWithSolution.aspx#a89bf0c78-2bfc-4872-89b3-5499c4cbd0ae" href="http://www.lhotka.net/weblog/DataBindingIssueInWPFWithSolution.aspx#a89bf0c78-2bfc-4872-89b3-5499c4cbd0ae"&gt;http://www.lhotka.net/weblog/DataBindingIssueInWPFWithSolution.aspx#a89bf0c78-2bfc-4872-89b3-5499c4cbd0ae&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
(Important: set UpdateSourceTrigger to LostFocus for textbox)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=b6355d44-bcb8-46c1-862b-d3c7137026e9" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,b6355d44-bcb8-46c1-862b-d3c7137026e9.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=300ce0c1-498b-4621-b27b-7141327e5e6f</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,300ce0c1-498b-4621-b27b-7141327e5e6f.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,300ce0c1-498b-4621-b27b-7141327e5e6f.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=300ce0c1-498b-4621-b27b-7141327e5e6f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://www.codeproject.com/KB/WPF/wpfvalidation.aspx" href="http://www.codeproject.com/KB/WPF/wpfvalidation.aspx">http://www.codeproject.com/KB/WPF/wpfvalidation.aspx</a>
        </p>
        <p>
          <a title="http://www.codeproject.com/KB/WPF/RegexValidationInWPF.aspx" href="http://www.codeproject.com/KB/WPF/RegexValidationInWPF.aspx">http://www.codeproject.com/KB/WPF/RegexValidationInWPF.aspx</a>
        </p>
        <p>
          <a title="http://www.codeproject.com/KB/WPF/WPFBusinessAppsPartTwo.aspx" href="http://www.codeproject.com/KB/WPF/WPFBusinessAppsPartTwo.aspx">http://www.codeproject.com/KB/WPF/WPFBusinessAppsPartTwo.aspx</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=300ce0c1-498b-4621-b27b-7141327e5e6f" />
      </body>
      <title>WPF Validation</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,300ce0c1-498b-4621-b27b-7141327e5e6f.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,300ce0c1-498b-4621-b27b-7141327e5e6f.aspx</link>
      <pubDate>Tue, 15 Apr 2008 21:24:36 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://www.codeproject.com/KB/WPF/wpfvalidation.aspx" href="http://www.codeproject.com/KB/WPF/wpfvalidation.aspx"&gt;http://www.codeproject.com/KB/WPF/wpfvalidation.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.codeproject.com/KB/WPF/RegexValidationInWPF.aspx" href="http://www.codeproject.com/KB/WPF/RegexValidationInWPF.aspx"&gt;http://www.codeproject.com/KB/WPF/RegexValidationInWPF.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.codeproject.com/KB/WPF/WPFBusinessAppsPartTwo.aspx" href="http://www.codeproject.com/KB/WPF/WPFBusinessAppsPartTwo.aspx"&gt;http://www.codeproject.com/KB/WPF/WPFBusinessAppsPartTwo.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=300ce0c1-498b-4621-b27b-7141327e5e6f" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,300ce0c1-498b-4621-b27b-7141327e5e6f.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=0f98c4e0-ac00-4791-b8ce-a59e5cb4c34b</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,0f98c4e0-ac00-4791-b8ce-a59e5cb4c34b.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,0f98c4e0-ac00-4791-b8ce-a59e5cb4c34b.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=0f98c4e0-ac00-4791-b8ce-a59e5cb4c34b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <font size="2">First, make sure the OpenHandCursor.cur file is marked as Resource
(not EmbeddedResource) in the referenced assembly.</font>
        </p>
        <p>
          <font size="2">
          </font>  
</p>
        <p>
          <font size="2">Code Block</font>
        </p>
        <p>
          <font size="2">
          </font>  
</p>
        <p>
          <font size="2">// use resource in local assembly</font>
        </p>
        <p>
          <font size="2">// new Uri("pack://application:,,,/folder/filename.cur")</font>
        </p>
        <p>
          <font size="2">// use resource in referenced assembly</font>
        </p>
        <p>
          <font size="2">// new Uri("yourAssemblyName;component/folder/filename.cur"<br />
// ,UriKind.Relative)</font>
        </p>
        <p>
          <font size="2">Stream cursorStream =</font>
        </p>
        <p>
          <font size="2">Application.GetResourceStream(new Uri    ("CursorLib;component/cursors/help.cur",<br />
UriKind.Relative)).Stream;</font>
        </p>
        <p>
          <font size="2">this.Cursor = new Cursor(cursorStream);</font>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=0f98c4e0-ac00-4791-b8ce-a59e5cb4c34b" />
      </body>
      <title>Resouces and Path in WPF</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,0f98c4e0-ac00-4791-b8ce-a59e5cb4c34b.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,0f98c4e0-ac00-4791-b8ce-a59e5cb4c34b.aspx</link>
      <pubDate>Tue, 08 Apr 2008 18:11:08 GMT</pubDate>
      <description>&lt;p&gt;
&lt;font size="2"&gt;First, make sure the OpenHandCursor.cur file is marked as Resource
(not EmbeddedResource) in the referenced assembly.&lt;/font&gt; 
&lt;p&gt;
&lt;font size="2"&gt;&lt;/font&gt;&amp;nbsp; 
&lt;p&gt;
&lt;font size="2"&gt;Code Block&lt;/font&gt; 
&lt;p&gt;
&lt;font size="2"&gt;&lt;/font&gt;&amp;nbsp; 
&lt;p&gt;
&lt;font size="2"&gt;// use resource in local assembly&lt;/font&gt; 
&lt;p&gt;
&lt;font size="2"&gt;// new Uri("pack://application:,,,/folder/filename.cur")&lt;/font&gt; 
&lt;p&gt;
&lt;font size="2"&gt;// use resource in referenced assembly&lt;/font&gt; 
&lt;p&gt;
&lt;font size="2"&gt;// new Uri("yourAssemblyName;component/folder/filename.cur"&lt;br&gt;
// ,UriKind.Relative)&lt;/font&gt; 
&lt;p&gt;
&lt;font size="2"&gt;Stream cursorStream =&lt;/font&gt; 
&lt;p&gt;
&lt;font size="2"&gt;Application.GetResourceStream(new Uri&amp;nbsp;&amp;nbsp;&amp;nbsp; ("CursorLib;component/cursors/help.cur",&lt;br&gt;
UriKind.Relative)).Stream;&lt;/font&gt; 
&lt;p&gt;
&lt;font size="2"&gt;this.Cursor = new Cursor(cursorStream);&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=0f98c4e0-ac00-4791-b8ce-a59e5cb4c34b" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,0f98c4e0-ac00-4791-b8ce-a59e5cb4c34b.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=c0a6bb1c-161d-42e8-a025-18689cdc472f</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,c0a6bb1c-161d-42e8-a025-18689cdc472f.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,c0a6bb1c-161d-42e8-a025-18689cdc472f.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=c0a6bb1c-161d-42e8-a025-18689cdc472f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <strong>
            <a href="http://blogs.msdn.com/astebner/archive/2005/10/30/487096.aspx">How
to uninstall an application when it does not appear in Add/Remove Programs</a>
          </strong>
        </p>
        <p>
          <a title="http://blogs.msdn.com/astebner/archive/2005/10/30/487096.aspx" href="http://blogs.msdn.com/astebner/archive/2005/10/30/487096.aspx">http://blogs.msdn.com/astebner/archive/2005/10/30/487096.aspx</a>
        </p>
        <p>
          <a title="http://blogs.msdn.com/varungupta/archive/2007/12/04/visual-studio-2008-setup-troubleshooting-guide.aspx" href="http://blogs.msdn.com/varungupta/archive/2007/12/04/visual-studio-2008-setup-troubleshooting-guide.aspx">http://blogs.msdn.com/varungupta/archive/2007/12/04/visual-studio-2008-setup-troubleshooting-guide.aspx</a>
        </p>
        <p>
          <a title="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2519361&amp;SiteID=1" href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2519361&amp;SiteID=1">http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2519361&amp;SiteID=1</a>
        </p>
        <p>
          <a title="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2519361&amp;SiteID=1" href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2519361&amp;SiteID=1">http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2519361&amp;SiteID=1</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=c0a6bb1c-161d-42e8-a025-18689cdc472f" />
      </body>
      <title>Uninstall Orcas beta</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,c0a6bb1c-161d-42e8-a025-18689cdc472f.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,c0a6bb1c-161d-42e8-a025-18689cdc472f.aspx</link>
      <pubDate>Wed, 05 Mar 2008 21:36:07 GMT</pubDate>
      <description>&lt;p&gt;
&lt;strong&gt;&lt;a href="http://blogs.msdn.com/astebner/archive/2005/10/30/487096.aspx"&gt;How
to uninstall an application when it does not appear in Add/Remove Programs&lt;/a&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://blogs.msdn.com/astebner/archive/2005/10/30/487096.aspx" href="http://blogs.msdn.com/astebner/archive/2005/10/30/487096.aspx"&gt;http://blogs.msdn.com/astebner/archive/2005/10/30/487096.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://blogs.msdn.com/varungupta/archive/2007/12/04/visual-studio-2008-setup-troubleshooting-guide.aspx" href="http://blogs.msdn.com/varungupta/archive/2007/12/04/visual-studio-2008-setup-troubleshooting-guide.aspx"&gt;http://blogs.msdn.com/varungupta/archive/2007/12/04/visual-studio-2008-setup-troubleshooting-guide.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2519361&amp;amp;SiteID=1" href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2519361&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2519361&amp;amp;SiteID=1&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2519361&amp;amp;SiteID=1" href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2519361&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2519361&amp;amp;SiteID=1&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=c0a6bb1c-161d-42e8-a025-18689cdc472f" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,c0a6bb1c-161d-42e8-a025-18689cdc472f.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=97c07914-f7d6-4536-a161-e941563abc39</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,97c07914-f7d6-4536-a161-e941563abc39.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,97c07914-f7d6-4536-a161-e941563abc39.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=97c07914-f7d6-4536-a161-e941563abc39</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://www.codeproject.com/KB/WPF/WPFBusinessAppsPartOne.aspx" href="http://www.codeproject.com/KB/WPF/WPFBusinessAppsPartOne.aspx">http://www.codeproject.com/KB/WPF/WPFBusinessAppsPartOne.aspx</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=97c07914-f7d6-4536-a161-e941563abc39" />
      </body>
      <title>WPF Business Application Series</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,97c07914-f7d6-4536-a161-e941563abc39.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,97c07914-f7d6-4536-a161-e941563abc39.aspx</link>
      <pubDate>Wed, 27 Feb 2008 22:42:08 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://www.codeproject.com/KB/WPF/WPFBusinessAppsPartOne.aspx" href="http://www.codeproject.com/KB/WPF/WPFBusinessAppsPartOne.aspx"&gt;http://www.codeproject.com/KB/WPF/WPFBusinessAppsPartOne.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=97c07914-f7d6-4536-a161-e941563abc39" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,97c07914-f7d6-4536-a161-e941563abc39.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=0dce224b-d208-4b7d-b7a3-950f9b80bf24</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,0dce224b-d208-4b7d-b7a3-950f9b80bf24.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,0dce224b-d208-4b7d-b7a3-950f9b80bf24.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=0dce224b-d208-4b7d-b7a3-950f9b80bf24</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://msdn2.microsoft.com/en-us/library/ms752347.aspx#data_validation" href="http://msdn2.microsoft.com/en-us/library/ms752347.aspx#data_validation">http://msdn2.microsoft.com/en-us/library/ms752347.aspx#data_validation</a>
        </p>
        <p>
          <a title="http://blogs.msdn.com/wpfsdk/archive/2007/10/02/data-validation-in-3-5.aspx" href="http://blogs.msdn.com/wpfsdk/archive/2007/10/02/data-validation-in-3-5.aspx">http://blogs.msdn.com/wpfsdk/archive/2007/10/02/data-validation-in-3-5.aspx</a>
        </p>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=0dce224b-d208-4b7d-b7a3-950f9b80bf24" />
      </body>
      <title>WPF Data Boinding and new Validation interface.</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,0dce224b-d208-4b7d-b7a3-950f9b80bf24.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,0dce224b-d208-4b7d-b7a3-950f9b80bf24.aspx</link>
      <pubDate>Wed, 27 Feb 2008 21:01:34 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://msdn2.microsoft.com/en-us/library/ms752347.aspx#data_validation" href="http://msdn2.microsoft.com/en-us/library/ms752347.aspx#data_validation"&gt;http://msdn2.microsoft.com/en-us/library/ms752347.aspx#data_validation&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://blogs.msdn.com/wpfsdk/archive/2007/10/02/data-validation-in-3-5.aspx" href="http://blogs.msdn.com/wpfsdk/archive/2007/10/02/data-validation-in-3-5.aspx"&gt;http://blogs.msdn.com/wpfsdk/archive/2007/10/02/data-validation-in-3-5.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=0dce224b-d208-4b7d-b7a3-950f9b80bf24" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,0dce224b-d208-4b7d-b7a3-950f9b80bf24.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=782d5451-7701-4152-83c8-efffd7a1fdde</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,782d5451-7701-4152-83c8-efffd7a1fdde.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,782d5451-7701-4152-83c8-efffd7a1fdde.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=782d5451-7701-4152-83c8-efffd7a1fdde</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a title="http://www.designerwpf.com/2007/12/11/listview-faq/" href="http://www.designerwpf.com/2007/12/11/listview-faq/">http://www.designerwpf.com/2007/12/11/listview-faq/</a>
        <h4>
          <a href="http://www.designerwpf.com/2007/12/11/listview-faq/">ListView FAQ</a>
        </h4>
        <p>
11th December 2007, 02:19 pm by Matthias Shapiro 
</p>
        <p>
  
</p>
        <ul>
          <li>
            <a href="http://www.designerwpf.com/2007/12/11/how-do-i-set-up-grid-lines-for-my-listview/">How
do I get grid lines to show up in the ListView?</a>
            <em>
            </em>
          </li>
          <li>
            <a href="http://www.designerwpf.com/2007/12/13/styling-a-listview-column-using-blend/">How
do I style a specific column in a ListView?</a>
          </li>
          <li>
            <a href="http://www.designerwpf.com/2007/12/13/ellipsis-and-textwrapping-in-a-listview-column/">How
do I make it so that, instead of cutting off the text in my column when I shorten
it, my text displays ellipsis?</a>
          </li>
          <li>
            <a href="http://www.designerwpf.com/2007/12/13/ellipsis-and-textwrapping-in-a-listview-column/">How
do I make it so that my text wraps when I shorten my columns?</a>
          </li>
          <li>
            <a href="http://www.designerwpf.com/2007/12/17/how-do-i-center-something-in-my-listview-column/">How
do I center something in my ListView column?</a>
          </li>
          <li>
            <a href="http://www.designerwpf.com/2008/02/02/how-do-i-wrap-text-in-a-listview-header/">How
do I wrap text in a ListView header?</a>
          </li>
          <li>
            <a href="http://www.designerwpf.com/2008/01/25/embedded-listview-columns-columns-within-columns/">How
do I embed ListView Columns in another Column?</a> (Columns with Categories)  
</li>
          <li>
            <a href="http://www.designerwpf.com/2008/01/23/how-do-i-style-the-listview-column-gripper-also-known-as-a-splitter-or-a-seperator/">How
do I style the ListView column gripper?</a> (the gripper is also called a “splitter”
and a “seperator”) 
</li>
        </ul>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=782d5451-7701-4152-83c8-efffd7a1fdde" />
      </body>
      <title>WPF ListView FAQ</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,782d5451-7701-4152-83c8-efffd7a1fdde.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,782d5451-7701-4152-83c8-efffd7a1fdde.aspx</link>
      <pubDate>Fri, 22 Feb 2008 23:01:44 GMT</pubDate>
      <description>&lt;a title="http://www.designerwpf.com/2007/12/11/listview-faq/" href="http://www.designerwpf.com/2007/12/11/listview-faq/"&gt;http://www.designerwpf.com/2007/12/11/listview-faq/&lt;/a&gt; 
&lt;h4&gt;&lt;a href="http://www.designerwpf.com/2007/12/11/listview-faq/"&gt;ListView FAQ&lt;/a&gt;
&lt;/h4&gt;
&lt;p&gt;
11th December 2007, 02:19 pm by Matthias Shapiro 
&lt;p&gt;
&amp;nbsp; 
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.designerwpf.com/2007/12/11/how-do-i-set-up-grid-lines-for-my-listview/"&gt;How
do I get grid lines to show up in the ListView?&lt;/a&gt;&lt;em&gt; &lt;/em&gt; 
&lt;li&gt;
&lt;a href="http://www.designerwpf.com/2007/12/13/styling-a-listview-column-using-blend/"&gt;How
do I style a specific column in a ListView?&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.designerwpf.com/2007/12/13/ellipsis-and-textwrapping-in-a-listview-column/"&gt;How
do I make it so that, instead of cutting off the text in my column when I shorten
it, my text displays ellipsis?&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.designerwpf.com/2007/12/13/ellipsis-and-textwrapping-in-a-listview-column/"&gt;How
do I make it so that my text wraps when I shorten my columns?&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.designerwpf.com/2007/12/17/how-do-i-center-something-in-my-listview-column/"&gt;How
do I center something in my ListView column?&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.designerwpf.com/2008/02/02/how-do-i-wrap-text-in-a-listview-header/"&gt;How
do I wrap text in a ListView header?&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.designerwpf.com/2008/01/25/embedded-listview-columns-columns-within-columns/"&gt;How
do I embed ListView Columns in another Column?&lt;/a&gt; (Columns with Categories)&amp;nbsp; 
&lt;li&gt;
&lt;a href="http://www.designerwpf.com/2008/01/23/how-do-i-style-the-listview-column-gripper-also-known-as-a-splitter-or-a-seperator/"&gt;How
do I style the ListView column gripper?&lt;/a&gt; (the gripper is also called a “splitter”
and a “seperator”) 
&lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=782d5451-7701-4152-83c8-efffd7a1fdde" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,782d5451-7701-4152-83c8-efffd7a1fdde.aspx</comments>
      <category>DotNet / WPF</category>
    </item>
  </channel>
</rss>