<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://interactiveasp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results matching tag 'WPF'</title><link>http://interactiveasp.net/search/SearchResults.aspx?a=1&amp;o=DateDescending&amp;tag=WPF&amp;orTags=0</link><description>Search results matching tag 'WPF'</description><dc:language>en-US</dc:language><generator>CommunityServer 2008 (Build: 30417.1769)</generator><item><title>Converting a Vector PDF image to a XAML Drawing Brush</title><link>http://interactiveasp.net/blogs/natesstuff/archive/2013/10/02/converting-a-vector-pdf-image-to-a-xaml-drawing-brush.aspx</link><pubDate>Wed, 02 Oct 2013 21:18:44 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:6754</guid><dc:creator>NathanZaugg</dc:creator><description>&lt;p&gt;&lt;img style="float: left; display: inline" align="left" src="data:image/jpeg;base64,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" /&gt;&lt;/p&gt;  &lt;p&gt;A couple of weeks ago I listened to a presentation by Scott Hanselman about &lt;a href="http://www.webstock.org.nz/talks/its-not-what-you-read-its-what-you-ignore/" target="_blank"&gt;scaling your life&lt;/a&gt;. One of the many great pieces of advice is to blog about something rather than email an answer. &lt;/p&gt;  &lt;p&gt;So this afternoon my good friend Alex asked me how we used to convert Vector PDF images to XAML Drawing Brushes so they can be applied to objects as a background, for instance. The vector part of that sentence is important because any rasterized portions of the PDF will be excluded in this process.&lt;/p&gt;  &lt;p&gt;Well, there really isn’t a lot to it, so here are the instructions:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Open up your vector image in &lt;a href="https://www.google.com/url?sa=t&amp;amp;rct=j&amp;amp;q=&amp;amp;esrc=s&amp;amp;source=web&amp;amp;cd=2&amp;amp;cad=rja&amp;amp;ved=0CEUQjBAwAQ&amp;amp;url=http%3A%2F%2Finkscape.org%2Fdownload%2F&amp;amp;ei=FYRMUuqLJqaZiQLhyIG4DA&amp;amp;usg=AFQjCNFNzpOzyMejYFgKdF8HmL2UaFuGCg&amp;amp;sig2=rKZ6ZPB1yNSTitsHMNes9g&amp;amp;bvm=bv.53537100,d.cGE" target="_blank"&gt;Inkscape&lt;/a&gt;. Inkscape can open a wide variety of images, including PDF.       &lt;br /&gt;&lt;a href="http://media2.interactiveasp.net/BlogImages/Converting-an-PDF-image-to-a-XAML-Visual_CB5F/image.png" target="_blank"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://media2.interactiveasp.net/BlogImages/Converting-an-PDF-image-to-a-XAML-Visual_CB5F/image_thumb.png" width="244" height="188" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Click File –&amp;gt; Save As. Drop the Save as Type to “Microsoft XAML (*.xaml)” and save the file as XAML. Once the file is saved you can open it up in Internet Explorer to see how the conversion process went. The problem though, is that this is painting directly to a canvas and is not packaged to be used as a background.      &lt;br /&gt;&lt;a href="http://media2.interactiveasp.net/BlogImages/Converting-an-PDF-image-to-a-XAML-Visual_CB5F/image_3.png" target="_blank"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://media2.interactiveasp.net/BlogImages/Converting-an-PDF-image-to-a-XAML-Visual_CB5F/image_thumb_3.png" width="244" height="149" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Open up Microsoft Expression Blend. Create a new project. Open up the XAML for the main file and replace it with the contents from your file from step 2.      &lt;br /&gt;&lt;a href="http://media2.interactiveasp.net/BlogImages/Converting-an-PDF-image-to-a-XAML-Visual_CB5F/image_4.png" target="_blank"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://media2.interactiveasp.net/BlogImages/Converting-an-PDF-image-to-a-XAML-Visual_CB5F/image_thumb_4.png" width="244" height="177" /&gt;&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Select all parts of the drawing then select Tools –&amp;gt; Make Brush Resource –&amp;gt; Make Drawing Brush Resource. This will pop open a dialog that will give you some options about where to define this resource and what it should be named.      &lt;br /&gt;&lt;a href="http://media2.interactiveasp.net/BlogImages/Converting-an-PDF-image-to-a-XAML-Visual_CB5F/image_5.png" target="_blank"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://media2.interactiveasp.net/BlogImages/Converting-an-PDF-image-to-a-XAML-Visual_CB5F/image_thumb_5.png" width="244" height="128" /&gt;&lt;/a&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;So now your technically done. The contents of the Resource Dictionary now contain your new Drawing Brush Resource. To test it out clear all content from your main window except for the Window and Grid objects. Click the whitespace and open the properties inspector. Click the square dialog button for the Background and select Local Resource and the name you gave your brush. You should now be able to see your image:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://media2.interactiveasp.net/BlogImages/Converting-an-PDF-image-to-a-XAML-Visual_CB5F/image_6.png" target="_blank"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://media2.interactiveasp.net/BlogImages/Converting-an-PDF-image-to-a-XAML-Visual_CB5F/image_thumb_6.png" width="244" height="129" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The reason it is stretched is because your drawing brush will stretch to fill it’s contents. If you have a look at the XAML of the main window shows you will see the following XAML:&lt;/p&gt;    &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Grid&lt;/span&gt; &lt;span class="attr"&gt;Background&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;{DynamicResource MindfireBackground}&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&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;That’s pretty much it! 


</description></item><item><title>CSMediator Mediator Pattern Implementation in C#</title><link>http://interactiveasp.net/media/p/6661.aspx</link><pubDate>Mon, 12 Jul 2010 22:31:23 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:6661</guid><dc:creator>NathanZaugg</dc:creator><description>&lt;p&gt;&amp;nbsp;This contains the source for the implementation of the Mediator pattern for M-V-VM, MVC, or MVP architectures.&amp;nbsp; &lt;/p&gt;</description></item><item><title>6 Things I Bet You Didn't Know About Data Binding in WPF</title><link>http://interactiveasp.net/blogs/natesstuff/archive/2009/01/21/6-things-i-bet-you-didn-t-know-about-data-binding-in-wpf.aspx</link><pubDate>Wed, 21 Jan 2009 22:26:00 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:396</guid><dc:creator>NathanZaugg</dc:creator><description>&lt;p&gt;&lt;img height="99" width="99" src="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/winFX_5F00_3.jpg" align="left" alt="winFX" border="0" style="border-right: 0px; border-top: 0px; margin: 0px 10px 5px 0px; border-left: 0px; border-bottom: 0px" /&gt; I fell in love with WPF the first time I saw it in action!&amp;nbsp; WPF is a thing of pure beauty!&amp;nbsp; Anyway, from the second I saw how the data binding worked I knew that there was going to be a lot to figure out there!&amp;nbsp; It also seems as though there is no real data binding expert -- or the experts don't blog too much about it.&amp;nbsp; I created my &lt;a target="_blank" href="http://interactiveasp.net/media/p/23.aspx"&gt;XAML Cheat Sheet&lt;/a&gt; shortly after feeling like I had some kind of grasp on the concept.&amp;nbsp; It is still a great reference for basic bindings, but when you are real serious about binding you'll have to do better than that.&lt;/p&gt;
&lt;p&gt;So I have been working on a project in my spare time called SmartForms 2.0 (more on that later) and I have had to do some very difficult things using bindings.&amp;nbsp; In my previous experience with WPF I would either create a cleaver type converter and/or just give up and set the value/state of the controls in code (eww!).&amp;nbsp; This time is different and I have to make data binding work.&amp;nbsp; &lt;/p&gt;
&lt;h2&gt;Example #1&lt;/h2&gt;
&lt;p&gt;Lets say that you need to bind a bool? (nullable boolean) type to a checkbox.&lt;/p&gt;
&lt;p&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;CheckBox &lt;/span&gt;&lt;span style="color: red"&gt;IsChecked&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding &lt;/span&gt;&lt;span style="color: red"&gt;SomeBooleanField&lt;/span&gt;&lt;span style="color: blue"&gt;}"&amp;gt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Checkbox&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;CheckBox&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;Produces:&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/DataBound-Checkbox_5F00_2.png"&gt;&lt;img height="68" width="178" src="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/DataBound-Checkbox_5F00_thumb.png" alt="DataBound Checkbox" border="0" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;You will notice that the checkbox is in a neither checked nor unchecked state.&amp;nbsp; Setting IsThreeState="False" doesn't help you as it is false by default. I want the checkebox to be unchecked by default but have no control over the type or the initialization of the type.&amp;nbsp; Check this out:&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;CheckBox &lt;/span&gt;&lt;span style="color: red"&gt;IsChecked&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding &lt;/span&gt;&lt;span style="color: red"&gt;SomeBooleanField&lt;/span&gt;&lt;span style="color: blue"&gt;, &lt;br /&gt;              &lt;/span&gt;&lt;span style="color: red"&gt;TargetNullValue&lt;/span&gt;&lt;span style="color: blue"&gt;=false}"&amp;gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: #a31515"&gt;Checkbox&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;CheckBox&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;And now we have normal looking checkboxes!&amp;nbsp; The best part is that this method doesn't mutate our property.&amp;nbsp; This was exactly what I was looking for!&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/DataBound-Checkbox-Fixed_5F00_2.png"&gt;&lt;img height="66" width="164" src="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/DataBound-Checkbox-Fixed_5F00_thumb.png" alt="DataBound Checkbox Fixed" border="0" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;h2&gt;Example #2&lt;/h2&gt;
&lt;p&gt;The following XAML is pretty straight forward.&amp;nbsp; It is simply a text box that we expect to put a city into.&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;StackPanel &lt;/span&gt;&lt;span style="color: red"&gt;Width&lt;/span&gt;&lt;span style="color: blue"&gt;="130" &lt;/span&gt;&lt;span style="color: red"&gt;Height&lt;/span&gt;&lt;span style="color: blue"&gt;="40" &lt;/span&gt;&lt;span style="color: red"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="color: blue"&gt;="Left" &lt;br /&gt;              &lt;/span&gt;&lt;span style="color: red"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="color: blue"&gt;="Top"&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBlock&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;City&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBlock&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBox &lt;/span&gt;&lt;span style="color: red"&gt;Text&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding &lt;/span&gt;&lt;span style="color: red"&gt;SomeTextField&lt;/span&gt;&lt;span style="color: blue"&gt;}" /&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;StackPanel&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Produces:&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/Databing-Textbox-No-Default_5F00_2.png"&gt;&lt;img height="87" width="175" src="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/Databing-Textbox-No-Default_5F00_thumb.png" alt="Databing Textbox No Default" border="0" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;What if the item we are attempting to data bind to is not available.&amp;nbsp; It's not going to be null, the binding will just fail.&amp;nbsp; This should work well:&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;StackPanel &lt;/span&gt;&lt;span style="color: red"&gt;Width&lt;/span&gt;&lt;span style="color: blue"&gt;="130" &lt;/span&gt;&lt;span style="color: red"&gt;Height&lt;/span&gt;&lt;span style="color: blue"&gt;="40" &lt;/span&gt;&lt;span style="color: red"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="color: blue"&gt;="Left" &lt;br /&gt;            &lt;/span&gt;&lt;span style="color: red"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="color: blue"&gt;="Top"&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBlock&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;City&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBlock&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBox &lt;/span&gt;&lt;span style="color: red"&gt;Text&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding &lt;/span&gt;&lt;span style="color: red"&gt;SomeTextField&lt;/span&gt;&lt;span style="color: blue"&gt;, &lt;br /&gt;            &lt;/span&gt;&lt;span style="color: red"&gt;FallbackValue&lt;/span&gt;&lt;span style="color: blue"&gt;=UNBOUND}" /&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;StackPanel&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Produces:&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/Databing-Textbox-Default_5F00_2.png"&gt;&lt;img height="90" width="167" src="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/Databing-Textbox-Default_5F00_thumb.png" alt="Databing Textbox Default" border="0" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;h2&gt;Example #3&lt;/h2&gt;
&lt;p&gt;This is a much more common occurrence.&amp;nbsp; You have a number that you need to format in a textbox.&amp;nbsp; This example shows the decimal value with no real format at all.&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;StackPanel &lt;/span&gt;&lt;span style="color: red"&gt;Width&lt;/span&gt;&lt;span style="color: blue"&gt;="130" &lt;/span&gt;&lt;span style="color: red"&gt;Height&lt;/span&gt;&lt;span style="color: blue"&gt;="40" &lt;/span&gt;&lt;span style="color: red"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="color: blue"&gt;="Left" &lt;br /&gt;            &lt;/span&gt;&lt;span style="color: red"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="color: blue"&gt;="Top"&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBlock&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Cost&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBlock&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBox &lt;/span&gt;&lt;span style="color: red"&gt;Text&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding &lt;/span&gt;&lt;span style="color: red"&gt;SomeDecimalField}" &lt;span style="color: blue"&gt;/&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;StackPanel&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;Produces:&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/Databing-Decimal-Non-Formatted_5F00_2.png"&gt;&lt;img height="100" width="170" src="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/Databing-Decimal-Non-Formatted_5F00_thumb.png" alt="Databing Decimal Non Formatted" border="0" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;There are a few ways to get the format we desire.&amp;nbsp; The first example uses a static resource:&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre class="code"&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;clr&lt;/span&gt;&lt;span style="color: blue"&gt;="clr-namespace:System;assembly=mscorlib"&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;StackPanel &lt;/span&gt;&lt;span style="color: red"&gt;Width&lt;/span&gt;&lt;span style="color: blue"&gt;="130" &lt;/span&gt;&lt;span style="color: red"&gt;Height&lt;/span&gt;&lt;span style="color: blue"&gt;="40" &lt;/span&gt;&lt;span style="color: red"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="color: blue"&gt;="Left" &lt;br /&gt;            &lt;/span&gt;&lt;span style="color: red"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="color: blue"&gt;="Top"&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;StackPanel.Resources&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;clr&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;String &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Key&lt;/span&gt;&lt;span style="color: blue"&gt;="formatStr"&amp;gt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;{0:C}&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;clr&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;String&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;StackPanel.Resources&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBlock&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Cost&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBlock&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBox &lt;/span&gt;&lt;span style="color: red"&gt;Text&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding &lt;/span&gt;&lt;span style="color: red"&gt;SomeDecimalField&lt;/span&gt;&lt;span style="color: blue"&gt;, &lt;br /&gt;             &lt;/span&gt;&lt;span style="color: red"&gt;StringFormat&lt;/span&gt;&lt;span style="color: blue"&gt;={&lt;/span&gt;&lt;span style="color: #a31515"&gt;StaticResource &lt;/span&gt;&lt;span style="color: red"&gt;formatStr&lt;/span&gt;&lt;span style="color: blue"&gt;}}" /&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;StackPanel&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can put the string inline but it looks really funny and for some reason the there has to be a non-whitespace character before the formatting expression which you may not want:&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBox &lt;/span&gt;&lt;span style="color: red"&gt;Text&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding &lt;/span&gt;&lt;span style="color: red"&gt;SomeDecimalField&lt;/span&gt;&lt;span style="color: blue"&gt;, &lt;br /&gt;         &lt;/span&gt;&lt;span style="color: red"&gt;StringFormat&lt;/span&gt;&lt;span style="color: blue"&gt;=Cost: {&lt;/span&gt;0&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;C&lt;/span&gt;&lt;span style="color: blue"&gt;}}" /&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This formats the string to look like "Cost: $1,2398.00".&amp;nbsp; You can see how that could cause lots of confusion and would be undesirable.&amp;nbsp; There is a way we can get the binding to work a little better:&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBox &lt;/span&gt;&lt;span style="color: red"&gt;Text&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding &lt;/span&gt;&lt;span style="color: red"&gt;SomeDecimalField&lt;/span&gt;&lt;span style="color: blue"&gt;, &lt;br /&gt;             &lt;/span&gt;&lt;span style="color: red"&gt;StringFormat&lt;/span&gt;&lt;span style="color: blue"&gt;={}{&lt;/span&gt;0&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;C&lt;/span&gt;&lt;span style="color: blue"&gt;}}" /&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;OR&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBox&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBox.Text&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding &lt;/span&gt;&lt;span style="color: red"&gt;Path&lt;/span&gt;&lt;span style="color: blue"&gt;="SomeDecimalField" &lt;br /&gt;              &lt;/span&gt;&lt;span style="color: red"&gt;StringFormat&lt;/span&gt;&lt;span style="color: blue"&gt;="{}{0:C}" /&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBox.Text&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBox&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The result is a nicely formatted output:&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/Databing-Decimal-Formatted_5F00_2.png"&gt;&lt;img height="99" width="177" src="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/Databing-Decimal-Formatted_5F00_thumb.png" alt="Databing Decimal Formatted" border="0" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Notice how the binding was applied? This is how you apply MultiBindings which is the next topic.&lt;/p&gt;
&lt;h2&gt;Example #4&lt;/h2&gt;
&lt;p&gt;What if you want the value of one or more fields to exist in a single binding?&amp;nbsp; That is where MultiBindings shine!&amp;nbsp; Check out this very easy example:&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;StackPanel &lt;/span&gt;&lt;span style="color: red"&gt;Width&lt;/span&gt;&lt;span style="color: blue"&gt;="130" &lt;/span&gt;&lt;span style="color: red"&gt;Height&lt;/span&gt;&lt;span style="color: blue"&gt;="40" &lt;/span&gt;&lt;span style="color: red"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="color: blue"&gt;="Left" &lt;br /&gt;             &lt;/span&gt;&lt;span style="color: red"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="color: blue"&gt;="Top"&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBlock&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBlock&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;            
    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBox&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBox.Text&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;MultiBinding &lt;/span&gt;&lt;span style="color: red"&gt;StringFormat&lt;/span&gt;&lt;span style="color: blue"&gt;="{}{0}, {1}"&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding &lt;/span&gt;&lt;span style="color: red"&gt;Path&lt;/span&gt;&lt;span style="color: blue"&gt;="LastName" /&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding &lt;/span&gt;&lt;span style="color: red"&gt;Path&lt;/span&gt;&lt;span style="color: blue"&gt;="FirstName" /&amp;gt;
            &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;MultiBinding&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBox.Text&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBox&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;StackPanel&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Results:&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/Multi-Binding_5F00_2.png"&gt;&lt;img height="99" width="196" src="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/Multi-Binding_5F00_thumb.png" alt="Multi Binding" border="0" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;h2&gt;Example #5&lt;/h2&gt;
&lt;p&gt;Validation can happen at the point of binding. This can be handy if the objects you are binding to have logic built in.&amp;nbsp; For example, lets say you have a property for birth date.&amp;nbsp; Obviously the person can not be born in the future!&amp;nbsp; Here is how we avoid such rotten input!&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;DateTime &lt;/span&gt;birthdate;
&lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;DateTime &lt;/span&gt;BrithDate {
    &lt;span style="color: blue"&gt;get &lt;/span&gt;{ &lt;span style="color: blue"&gt;return &lt;/span&gt;birthdate; }
    &lt;span style="color: blue"&gt;set &lt;/span&gt;{
        &lt;span style="color: blue"&gt;if &lt;/span&gt;(&lt;span style="color: blue"&gt;value &lt;/span&gt;&amp;gt; &lt;span style="color: #2b91af"&gt;DateTime&lt;/span&gt;.Today)
            &lt;span style="color: blue"&gt;throw new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ArgumentException&lt;/span&gt;(&lt;br /&gt;               &lt;span style="color: #a31515"&gt;"Person can not be born in the future!"&lt;/span&gt;);
        birthdate = &lt;span style="color: blue"&gt;value&lt;/span&gt;;
    }
}&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And the XAML:&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;StackPanel &lt;/span&gt;&lt;span style="color: red"&gt;Margin&lt;/span&gt;&lt;span style="color: blue"&gt;="5" &lt;/span&gt;&lt;span style="color: red"&gt;Width&lt;/span&gt;&lt;span style="color: blue"&gt;="130" &lt;/span&gt;&lt;span style="color: red"&gt;Height&lt;/span&gt;&lt;span style="color: blue"&gt;="40" &lt;br /&gt;           &lt;/span&gt;&lt;span style="color: red"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="color: blue"&gt;="Left" &lt;br /&gt;           &lt;/span&gt;&lt;span style="color: red"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="color: blue"&gt;="Top"&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBlock&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Birthdate&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBlock&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBox &lt;/span&gt;&lt;span style="color: red"&gt;Text&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding &lt;/span&gt;&lt;span style="color: red"&gt;BrithDate&lt;/span&gt;&lt;span style="color: blue"&gt;, 
                            &lt;/span&gt;&lt;span style="color: red"&gt;Mode&lt;/span&gt;&lt;span style="color: blue"&gt;=TwoWay, 
                            &lt;/span&gt;&lt;span style="color: red"&gt;StringFormat&lt;/span&gt;&lt;span style="color: blue"&gt;=d, 
                            &lt;/span&gt;&lt;span style="color: red"&gt;NotifyOnValidationError&lt;/span&gt;&lt;span style="color: blue"&gt;=true, 
                            &lt;/span&gt;&lt;span style="color: red"&gt;ValidatesOnExceptions&lt;/span&gt;&lt;span style="color: blue"&gt;=true}" /&amp;gt;        
&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;StackPanel&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Result:&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/Binding-No-Error_5F00_4.png"&gt;&lt;img height="99" width="169" src="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/Binding-No-Error_5F00_thumb_5F00_1.png" alt="Binding No Error" border="0" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/Binding-Error_5F00_4.png"&gt;&lt;img height="103" width="169" src="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/Binding-Error_5F00_thumb_5F00_1.png" alt="Binding Error" border="0" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;The error can also be styled if required.&amp;nbsp; Shown is the default style (nothing custom).&lt;/p&gt;
&lt;h2&gt;Example #6&lt;/h2&gt;
&lt;p&gt;The last example is for something called PriorityBinding.&amp;nbsp; This is poorly named in my opinion as it would be better called CascadingBinding.&amp;nbsp; The point to PriorityBinding is to name multiple data bindings in order of most desirable to least desirable. This way if the first binding fails, is empty and/or default, another binding can take it's place.&amp;nbsp; You may have to be a little imaginative to think of such a scenario, but this kind of thing could be useful so I'm glad it's there.&amp;nbsp; Just for fun, I am using the IsAsync field as well.&amp;nbsp; This tells WPF to use a thread other than the GUI thread to retrieve this property.&amp;nbsp; This is important for properties that take a long time to return as it will leave your app unresponsive until the value is bound.&amp;nbsp; In the case of this example without that attribute the window will not show until the 5 seconds had elapsed.&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;private string &lt;/span&gt;fname;
&lt;span style="color: blue"&gt;public string &lt;/span&gt;FirstName {
&lt;span style="color: blue"&gt;     get &lt;/span&gt;{
          &lt;span style="color: #2b91af"&gt;Thread&lt;/span&gt;.Sleep(5000);
          &lt;span style="color: blue"&gt;return &lt;/span&gt;fname; 
     }
          &lt;span style="color: blue"&gt;set &lt;/span&gt;{ fname = &lt;span style="color: blue"&gt;value&lt;/span&gt;; }
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;Xaml:&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;StackPanel &lt;/span&gt;&lt;span style="color: red"&gt;Margin&lt;/span&gt;&lt;span style="color: blue"&gt;="5" &lt;/span&gt;&lt;span style="color: red"&gt;Width&lt;/span&gt;&lt;span style="color: blue"&gt;="130" &lt;/span&gt;&lt;span style="color: red"&gt;Height&lt;/span&gt;&lt;span style="color: blue"&gt;="40" &lt;br /&gt;            &lt;/span&gt;&lt;span style="color: red"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="color: blue"&gt;="Left" &lt;br /&gt;            &lt;/span&gt;&lt;span style="color: red"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="color: blue"&gt;="Top"&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBlock&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBlock&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBox&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBox.Text&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;PriorityBinding&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding &lt;/span&gt;&lt;span style="color: red"&gt;Path&lt;/span&gt;&lt;span style="color: blue"&gt;="LastNameNonExistant" &lt;br /&gt;                     &lt;/span&gt;&lt;span style="color: red"&gt;IsAsync&lt;/span&gt;&lt;span style="color: blue"&gt;="True" /&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding &lt;/span&gt;&lt;span style="color: red"&gt;Path&lt;/span&gt;&lt;span style="color: blue"&gt;="FirstName" &lt;br /&gt;                     &lt;/span&gt;&lt;span style="color: red"&gt;IsAsync&lt;/span&gt;&lt;span style="color: blue"&gt;="True" /&amp;gt;
            &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;PriorityBinding&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBox.Text&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBox&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;StackPanel&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Result:&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/Priority-Binding_5F00_2.png"&gt;&lt;img height="97" width="175" src="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/Priority-Binding_5F00_thumb.png" alt="Priority Binding" border="0" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Another neat little thing to know is that the Hierarchy for Binding is Binding -&amp;gt; BindingBase -&amp;gt; MarkupExtension -&amp;gt; Object.&amp;nbsp; Unlike much of the rest of the .NET Framework you can actually inherit from any of these classes and provide support for your customized binding needs.&amp;nbsp; That is exactly what I am doing for SmartForms 2.0!&amp;nbsp; I created a binding class called DataBinding and it looks a little like this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre class="code"&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;db&lt;/span&gt;&lt;span style="color: blue"&gt;="clr-namespace:SmartForms2.Binding;assembly=SmartForms2"&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBox &lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;="firstName" &lt;/span&gt;&lt;span style="color: red"&gt;Width&lt;/span&gt;&lt;span style="color: blue"&gt;="175" &lt;br /&gt;         &lt;/span&gt;&lt;span style="color: red"&gt;Text&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;db&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;DataBinding &lt;/span&gt;&lt;span style="color: red"&gt;Data&lt;/span&gt;&lt;span style="color: blue"&gt;, &lt;/span&gt;&lt;span style="color: red"&gt;DataSource&lt;/span&gt;&lt;span style="color: blue"&gt;=DB1}" /&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;My DataBinding class inherits directly from MarkupExtension so all I had to do is implement the abstract method ProvideValue.&lt;/p&gt;
&lt;h5&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.data.multibinding.aspx" title="http://msdn.microsoft.com/en-us/library/system.windows.data.multibinding.aspx"&gt;http://msdn.microsoft.com/en-us/library/system.windows.data.multibinding.aspx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc716880.aspx" title="http://msdn.microsoft.com/en-us/library/cc716880.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc716880.aspx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.data.prioritybinding.aspx" title="http://msdn.microsoft.com/en-us/library/system.windows.data.prioritybinding.aspx"&gt;http://msdn.microsoft.com/en-us/library/system.windows.data.prioritybinding.aspx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.data.bindingbase_members.aspx" title="http://msdn.microsoft.com/en-us/library/system.windows.data.bindingbase_members.aspx"&gt;http://msdn.microsoft.com/en-us/library/system.windows.data.bindingbase_members.aspx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.data.binding.isasync.aspx" title="http://msdn.microsoft.com/en-us/library/system.windows.data.binding.isasync.aspx"&gt;http://msdn.microsoft.com/en-us/library/system.windows.data.binding.isasync.aspx&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Silverlight 3 Announced</title><link>http://interactiveasp.net/blogs/natesstuff/archive/2008/12/18/silverlight-3-announced.aspx</link><pubDate>Thu, 18 Dec 2008 19:42:05 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:322</guid><dc:creator>NathanZaugg</dc:creator><description>&lt;p&gt;This &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/11/16/update-on-silverlight-2-and-a-glimpse-of-silverlight-3.aspx" target="_blank"&gt;announcement&lt;/a&gt; on Scott Gu's blog touts the success of the launch of Silverlight 2.0 and announces Silverlight 3.0.&amp;nbsp; Out of the success stories noted on the blog one of the coolest applications is the new Netflix player!&amp;nbsp; Having worked only a little in Silverlight but a lot in WPF I have been very disappointed with the lack of databinding in Silverlight 2.0! It sounds like I am not alone in this line of thinking so Silverlight 3.0 promises to fix a lot of that.&amp;nbsp; Another great feature is hardware acceleration (using OpenGL?) which would be really sweet!&amp;nbsp; These tools should be available early next year.&lt;/p&gt; &lt;p&gt;Here is a screen shot (taken from Scott's Blog):&lt;/p&gt; &lt;p&gt;&lt;a href="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/vs_5F00_2.png" target="_blank"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="364" alt="vs" src="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/vs_5F00_thumb.png" width="504" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;I really hope that they bring WPF and Silverlight more in line with each other -- increasing capability and compatibility!&amp;nbsp; It's ridiculous to think that we have three different but strikingly similar tools that don't interop!&amp;nbsp; Of course the three being WPF, Silverlight and MCE Media Center.&lt;/p&gt; &lt;h5&gt;Links:&lt;/h5&gt; &lt;ul&gt; &lt;li&gt;&lt;a title="http://weblogs.asp.net/scottgu/archive/2008/11/16/update-on-silverlight-2-and-a-glimpse-of-silverlight-3.aspx" href="http://weblogs.asp.net/scottgu/archive/2008/11/16/update-on-silverlight-2-and-a-glimpse-of-silverlight-3.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2008/11/16/update-on-silverlight-2-and-a-glimpse-of-silverlight-3.aspx&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</description></item><item><title>Great WPF Editor</title><link>http://interactiveasp.net/blogs/natesstuff/archive/2008/12/09/great-wpf-editor.aspx</link><pubDate>Tue, 09 Dec 2008 16:48:12 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:252</guid><dc:creator>NathanZaugg</dc:creator><description>&lt;p&gt;There is Expression Blend, Visual Studio, XamlPad that we are all aware of and use on a regular biases for creating our XAML.&amp;nbsp; One that I am adding to the top of my XAML editor list is Kaxaml!&amp;nbsp; This is the lightest weight most useful XAML editor I have ever seen!&amp;nbsp; It's got a great WPF/Blend look and is light and fast.&amp;nbsp; No more waiting 10-30 seconds for Visual Studio to fail to load your XAML documents!&amp;nbsp; If there were a way to replace the Visual Studio editor with this I would totally do it!&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;a href="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/kaxaml_5F00_screenshot_5F00_2.jpg" target="_blank"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="362" alt="kaxaml_screenshot" src="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/kaxaml_5F00_screenshot_5F00_thumb.jpg" width="504" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Unlike Blend it has code insight.&amp;nbsp; Unlike Visual Studio 2008 it is fast and functional!&amp;nbsp; My favorite feature is the XAML Scrubber which will "pretty up" your XAML by organizing the tags and attributes.&amp;nbsp; It will even put the most important attributes at the start of the tag.&amp;nbsp; It removes much of the pressure of writing XAML!&lt;/p&gt; &lt;p&gt;Hopefully some future versions will include a visual tree and perhaps even a feature where you can click on an click on an object and be taken to the applicable part in the XAML.&amp;nbsp; The XAML Scrubber only uses spaces and I am a tab guy -- oh how I wish it supported tabs!&amp;nbsp; Also, I noticed that once I added an event to a control it said I had to compile the XAML -- not sure what that means.&amp;nbsp; That means it's probably mostly useful for creating the user interface before you start hooking code into it.&amp;nbsp; &lt;/p&gt; &lt;p&gt;If you need a good place to hammer out some design -- this may be your best bet!&amp;nbsp; &lt;/p&gt; &lt;h5&gt;Links:&lt;/h5&gt; &lt;ul&gt; &lt;li&gt;&lt;a title="http://kaxaml.com/" href="http://kaxaml.com/"&gt;http://kaxaml.com/&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a title="http://labs.nerdplusart.com/#Kaxaml" href="http://labs.nerdplusart.com/#Kaxaml"&gt;http://labs.nerdplusart.com/#Kaxaml&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a title="http://codeplex.com/Kaxaml" href="http://codeplex.com/Kaxaml"&gt;http://codeplex.com/Kaxaml&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</description></item><item><title>WPF In Depth Presentation</title><link>http://interactiveasp.net/media/p/184.aspx</link><pubDate>Tue, 18 Nov 2008 21:17:21 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:184</guid><dc:creator>NathanZaugg</dc:creator><description>&lt;p&gt;This is the WPF In Depth Presentation I&amp;nbsp;gave at the Fall 2007 Utah Code Camp.&amp;nbsp;&lt;/p&gt;</description></item><item><title>Utah DNUG :: UI Design Patterns</title><link>http://interactiveasp.net/blogs/natesstuff/archive/2008/11/13/utah-dnug-ui-design-patterns.aspx</link><pubDate>Fri, 14 Nov 2008 02:21:59 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:166</guid><dc:creator>NathanZaugg</dc:creator><description>&lt;p&gt;&lt;em&gt;Presenter: &lt;strong&gt;Joe McBride&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;Date: &lt;strong&gt;Thursday November 13, 2008&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;Place: &lt;strong&gt;Neumont University&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I am pretty excited about this.&amp;nbsp; I am a big fan of design patterns and the presentation promises to cover MVC and MVP design patterns and those are not well understood architectures and I was also interested to see how it was applied to WPF.&amp;nbsp; There is also an additional pattern described called &amp;quot;Model View ViewModel&amp;quot;(MVVM).&lt;/p&gt; &lt;h2&gt;Model View Controller (MVC)&lt;/h2&gt; &lt;p&gt;This model seemed to be presented a bit differently than I expected.&amp;nbsp; The slide suggested that the Model could somehow be used circumventing the presenter.&amp;nbsp; Regardless, the MVC was described much like an API that is available for the view to consume passing nicely typed domain objects back and forth. This is a pretty straight-forward design pattern and has a lot on common with nTier.&amp;nbsp; &lt;/p&gt; &lt;p&gt;One of the good things about MVC is that it is much easier to test.&lt;/p&gt; &lt;h2&gt;Model View Presenter (MVP)&lt;/h2&gt; &lt;p&gt;The view can raise events to the presenter and everything is marshaled through the presenter.&amp;nbsp; One of the pro&amp;#39;s about MVP over MVC is that data binding is made possible. The presenter becomes the gateway for any logic -- the object you are using to bind with doesn&amp;#39;t need to be a domain object but can be a UI object. Data binding is the coolest and least understood part of WPF and I believe that Data binding could have been applied with the MVC pattern but the MVP is clearly easier.&amp;nbsp; The binding statements were very simple and the code looked pretty clean.&amp;nbsp; &lt;/p&gt; &lt;p&gt;One thing that I might not like about MVP is that the objects returned may be too customized for a particular view and if you plan to deploy this code with multiple views, for WPF and ASP.NET for example, may need entirely different types of objects for data binding.&lt;/p&gt; &lt;h2&gt;Command Pattern&lt;/h2&gt; &lt;p&gt;The command pattern is a lot like a fire alarm.&amp;nbsp; When there is a fire someone pulls the fire alarm and everyone exits the building.&amp;nbsp; In this analogy the fire alarm is the &amp;quot;command&amp;quot;, it is invoked by someone pulling it and anyone could pull it.&amp;nbsp; When it is pulled everyone interested in the fire alarm takes appropriate action.&amp;nbsp; This is actually an analogy I came up with on the fly but I think it&amp;#39;s a great way to describe a pretty abstract concept.&amp;nbsp; &lt;/p&gt; &lt;h2&gt;Model View ViewModel (MVVM)&lt;/h2&gt; &lt;p&gt;This is a new pattern to me -- I have never even heard of it before.&amp;nbsp; I do think that this approach could have some advantages where the ViewModel could be customized to work better with the actual view.&amp;nbsp; This is also a good place to implement the command pattern.&amp;nbsp; It is also a very useful that commands can be disabled which makes will actually update the WPF UI! That is pretty awesome!&amp;nbsp; The only potential downside (if you choose to call it that) is that there seems to be mode code involved even if it is somewhat abstracted away from the UI.&amp;nbsp; &lt;/p&gt; &lt;h2&gt;Testability&lt;/h2&gt; &lt;p&gt;Part of a good measure for any presentation design pattern is how testable it is.&amp;nbsp; I really believe that if you can keep your UI code to a bare minimum that the unit tests will be substantially more effective.&amp;nbsp; &lt;/p&gt; &lt;h3&gt;Observations:&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;I like the microphone.&amp;nbsp; &lt;/li&gt; &lt;li&gt;Great turnout.&amp;nbsp; I counted about 45 people in attendance&lt;/li&gt; &lt;li&gt;It&amp;#39;s very un-impressive when in the first 30 seconds of the presentation the code is broken; it was fixed very quickly though.&lt;/li&gt; &lt;li&gt;Too much on a single slide.&amp;nbsp; Could have done well to split them out into two or three slides.&lt;/li&gt; &lt;li&gt;Pizza was gone by the time I got there....bummer!&amp;nbsp; Probably makes my review more critical -- I need Pizza!&lt;/li&gt; &lt;li&gt;I think it could have been possible to do this almost entirely via Commands which would eliminate any code required on the code-behind for the view.&amp;nbsp; That might be an interesting thing for me to try later.&lt;/li&gt; &lt;li&gt;I was shocked when Charles Petzold&amp;#39;s book was not mentioned as a good WPF resource!&amp;nbsp; Geesh!&amp;nbsp; Also, I don&amp;#39;t believe Adam Nathan&amp;#39;s book (WPF Unleashed) is difficult and fast-paced.&amp;nbsp; I actually found it a quite addicting read.&amp;nbsp; Maybe not so much for the writing style (Petzold is clearly the literary master of the two) but because WPF is just such an interesting subject.&lt;/li&gt; &lt;li&gt;I couldn&amp;#39;t believe how few people know what the Command Pattern is.&lt;/li&gt; &lt;li&gt;I would like to have seen more interfaces and loose cohesiveness.&amp;nbsp; Okay -- Nevermind!&amp;nbsp; Just as I typed this he showed that he was using an interface.&lt;/li&gt; &lt;li&gt;I was very disappointed to see the use of &lt;font face="Courier New" color="#0000ff"&gt;var&lt;/font&gt; where objects are not anonymously typed.&amp;nbsp; &lt;/li&gt; &lt;li&gt;The presentation didn&amp;#39;t seem to flow too well at times.&amp;nbsp; I was also hoping to see a bit more of the mock objects and how to create those for unit testing.&lt;/li&gt;&lt;/ul&gt; &lt;h2&gt;Summary&lt;/h2&gt; &lt;p&gt;Thanks Joe! Great presentation.&amp;nbsp; Very good demonstration code used and it was very simple and small.&amp;nbsp; I have to admit I am a little jealous of your blog domain and I think it&amp;#39;s cool that he got it and that he actually uses it.&amp;nbsp; Hopefully we can link to each other more in the future.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h5&gt;Links:&lt;/h5&gt; &lt;ul&gt; &lt;li&gt;&lt;a title="http://xamlcoder.com/cs/blogs/joe/archive/2008/11/10/utah-net-user-group-presentation-ui-design-patterns.aspx" href="http://xamlcoder.com/cs/blogs/joe/archive/2008/11/10/utah-net-user-group-presentation-ui-design-patterns.aspx"&gt;http://xamlcoder.com/cs/blogs/joe/archive/2008/11/10/utah-net-user-group-presentation-ui-design-patterns.aspx&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</description></item><item><title>Routed Event Code Snippet</title><link>http://interactiveasp.net/blogs/natesstuff/archive/2008/10/15/routed-event-code-snippet.aspx</link><pubDate>Wed, 15 Oct 2008 19:51:45 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:113</guid><dc:creator>NathanZaugg</dc:creator><description>&lt;p&gt;&lt;a href="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/framework35_5F00_2.png"&gt;&lt;img style="border-right:0px;border-top:0px;margin:0px 10px 5px 0px;border-left:0px;border-bottom:0px;" height="142" alt="framework35" src="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/framework35_5F00_thumb.png" width="125" align="left" border="0" /&gt;&lt;/a&gt; I find it really strange that there are code snippets for Dependency Properties but not Routed Events!&amp;nbsp; Routed Events allow events to tunnel (preview) events up a visual tree and bubble them back down the visual tree.&amp;nbsp; Any control along the tree can subscribe to these events and handle them.&amp;nbsp; You can also choose to see events even if they have been handled.&amp;nbsp; &lt;/p&gt; &lt;p&gt;This makes RoutedEvents very nice for use in XAML!&amp;nbsp; For example, lets say you have a StackPanel and you want to know about any button clicks happening in that panel, you could simply use the following XAML:&lt;/p&gt; &lt;blockquote&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel &lt;/span&gt;&lt;span style="color:red;"&gt;ButtonBase.Click&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;MyButtonEventHandler&amp;quot;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button &lt;/span&gt;&lt;span style="color:red;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;50&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Content&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Button 1&amp;quot; /&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button &lt;/span&gt;&lt;span style="color:red;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;50&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Content&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Button 2&amp;quot; /&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button &lt;/span&gt;&lt;span style="color:red;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;50&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Content&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Button 3&amp;quot; /&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button &lt;/span&gt;&lt;span style="color:red;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;50&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Content&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Button 4&amp;quot; /&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/blockquote&gt;
&lt;p&gt;Now when any one of the buttons are clicked, the stack panel will receive notification.&amp;nbsp; Just like Attached Properties, the stack panel does not need to have a Click event.&amp;nbsp; If a button does not exist inside of the stack panel there is no problem, you just won&amp;#39;t receive any notification.&amp;nbsp; The buttons do not even have to be direct children of the stack panel for this to work so if we wanted we could put them inside of another stack panel or any other content control.&lt;/p&gt;
&lt;p&gt;I really think it strange that there was no snippet for Routed Events (being as handy as they are) so I took the time to write one.&lt;/p&gt;
&lt;p&gt;Lets make a code snippet for a Routed Event, here is how:&lt;/p&gt;
&lt;h4&gt;Create a Custom Snippet&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Find a snippet you plan to modify in the Manage Snippets Dialog (Tools -&amp;gt; Code Snippets Manager) 
&lt;li&gt;Open the Snippet using &lt;em&gt;&lt;strong&gt;File -&amp;gt; Open File &lt;/strong&gt;&lt;/em&gt;and open the file:&lt;br /&gt;&lt;strong&gt;&lt;em&gt;C:\Program Files\Microsoft Visual Studio 9.0\VC#\Snippets\1033\NetFX30\propdp.snippet &lt;/em&gt;&lt;/strong&gt;
&lt;li&gt;Edit the declarations (like):&lt;br /&gt;&lt;pre class="code"&gt;      &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Literal&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
          &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;name&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
          &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ToolTip&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Event Name&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ToolTip&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
          &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Default&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;MyEvent&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Default&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
      &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Literal&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;li&gt;Edit the snippet using &lt;strong&gt;$name$&lt;/strong&gt; for any literal replacement.
&lt;li&gt;Be sure to change the shortcut in the XML to &amp;quot;revent&amp;quot;.
&lt;li&gt;Save the file as &amp;quot;revent.snippet&amp;quot;
&lt;li&gt;Your visual studio instance should now see the snippet.&amp;nbsp; &lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;Here is the snippet code I used:&lt;/h4&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xml &lt;/span&gt;&lt;span style="color:red;"&gt;version&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;1.0&lt;/span&gt;&amp;quot; &lt;span style="color:red;"&gt;encoding&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;utf-8&lt;/span&gt;&amp;quot; &lt;span style="color:blue;"&gt;?&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;CodeSnippets  &lt;/span&gt;&lt;span style="color:red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;CodeSnippet &lt;/span&gt;&lt;span style="color:red;"&gt;Format&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;1.0.0&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Header&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Define a RoutedEvent&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Shortcut&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;revent&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Shortcut&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Description&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Code snippet for a event using RoutedEvent&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Description&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Author&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Nathan Zaugg&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Author&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SnippetTypes&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SnippetType&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Expansion&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SnippetType&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SnippetTypes&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Header&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Snippet&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Declarations&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Literal&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;eventhandlertype&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ToolTip&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Event Handler Type Type&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ToolTip&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Default&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;RoutedEventHandler&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Default&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Literal&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Literal&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;name&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ToolTip&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Event Name&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ToolTip&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Default&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;MyEvent&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Default&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Literal&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Literal&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;ownerclass&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ToolTip&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;The owning class of this Property.  &lt;br /&gt;                           Typically the class that it is declared in.&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ToolTip&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Default&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;ownerclass&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Default&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Literal&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Literal&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;routingstratigy&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ToolTip&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;The routing stratigy for this event.&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ToolTip&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Default&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Bubble&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Default&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Literal&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Declarations&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Code &lt;/span&gt;&lt;span style="color:red;"&gt;Language&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;csharp&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;
                &amp;lt;![CDATA[

&lt;/span&gt;&lt;span style="color:gray;"&gt;// Provide CLR accessors for the event
public event RoutedEventHandler $name$
{
        add { AddHandler($name$Event, value); } 
        remove { RemoveHandler($name$Event, value); }
}

// Using a RoutedEvent
public static readonly RoutedEvent $name$Event = EventManager.RegisterRoutedEvent(
    &amp;quot;$name$&amp;quot;, RoutingStrategy.$routingstratigy$, typeof($eventhandlertype$), typeof($ownerclass$));

$end$&lt;/span&gt;&lt;span style="color:blue;"&gt;]]&amp;gt;
            &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Code&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Snippet&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;CodeSnippet&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;CodeSnippets&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
&lt;/span&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;h4&gt;When you are done it should look like this:&lt;/h4&gt;
&lt;p&gt;&lt;a href="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/Using-Routed-Event_5F00_2.png" target="_blank"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="120" alt="Using Routed Event" src="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/Using-Routed-Event_5F00_thumb.png" width="479" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/Finished-Event_5F00_2.png" target="_blank"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="127" alt="Finished Event" src="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/Finished-Event_5F00_thumb.png" width="479" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you don&amp;#39;t want to bother writing it yourself, you may download my routed event snippet &lt;a href="http://interactiveasp.net/media/p/112.aspx" target="_blank"&gt;here&lt;/a&gt;.&amp;nbsp; I plan to create a code snippet for Dependency Properties that have coercion, event changed notification, and validation methods implemented so they may be overridden in descendent classes. &lt;/p&gt;
&lt;h5&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a title="http://interactiveasp.net/media/p/112.aspx" href="http://interactiveasp.net/media/p/112.aspx"&gt;Routed Event Snippet Download&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms742806.aspx" target="_blank"&gt;Routed Events (MSDN Reference)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://joshsmithonwpf.wordpress.com/2007/06/22/overview-of-routed-events-in-wpf/"&gt;Josh Smith on Routed Events&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</description></item><item><title>Routed Event Snippet</title><link>http://interactiveasp.net/media/p/112.aspx</link><pubDate>Wed, 15 Oct 2008 19:35:22 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:112</guid><dc:creator>NathanZaugg</dc:creator><description>&lt;p&gt;This is a snippit&amp;nbsp;&amp;quot;revent&amp;quot; that creates a routed event declairation in your form.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Copy this file to:&lt;br /&gt;&lt;strong&gt;&lt;em&gt;C:\Program Files\Microsoft Visual Studio 9.0\VC#\Snippets\1033\NetFX30&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Silverlight 2 RC0 Released</title><link>http://interactiveasp.net/blogs/natesstuff/archive/2008/10/09/silverlight-2-rc0-released.aspx</link><pubDate>Fri, 10 Oct 2008 05:41:16 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:109</guid><dc:creator>NathanZaugg</dc:creator><description>&lt;p&gt;&lt;img style="border-right:0px;border-top:0px;margin:0px 10px 5px 0px;border-left:0px;border-bottom:0px;" height="74" alt="Silverlight Logo" src="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/Silverlight-Logo_5F00_3.jpg" width="179" align="left" border="0" /&gt; Silverlight 2 is not far from reality!&amp;nbsp; With the first RC coming just months after the beta 2 release and promises of a full release coming soon we can start migrating existing beta 2 code to RC0 which is supposed to be compatible with the actual release. The announcement is posted on Scott Gu&amp;#39;s blog &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/09/25/silverlight-2-release-candidate-now-available.aspx" target="_blank"&gt;here&lt;/a&gt;.&amp;nbsp; I am excited to read that some of the major changes are making WPF and Silverlight.&amp;nbsp; Also, they have promised a bunch of new controls which will make Silverlight more control rich than WPF (with some exception).&amp;nbsp; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;My computer is still messed up from the Beta 2 release so I&amp;#39;m hoping that installing the RC0 release will fix some things up -- I&amp;#39;ll post on that later.&lt;/p&gt;</description></item></channel></rss>