<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Karl On WPF - .Net</title>
	<atom:link href="http://karlshifflett.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://karlshifflett.wordpress.com</link>
	<description>The Home of Mole and Karl's BLOG on WPF &#38; VB.NET.  (Karl speaks VB, learning C#)</description>
	<lastBuildDate>Thu, 18 Jun 2009 04:09:47 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<image>
		<url>http://www.gravatar.com/blavatar/fd6473d2122f8fd11e40fd5404a1a9c5?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Karl On WPF - .Net</title>
		<link>http://karlshifflett.wordpress.com</link>
	</image>
			<item>
		<title>Chicago WPF LOB Tour Materials (new materials added)</title>
		<link>http://karlshifflett.wordpress.com/2009/06/17/chicago-wpf-lob-tour-materials-new-materials-added/</link>
		<comments>http://karlshifflett.wordpress.com/2009/06/17/chicago-wpf-lob-tour-materials-new-materials-added/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 04:09:47 +0000</pubDate>
		<dc:creator>Karl Shifflett</dc:creator>
				<category><![CDATA[M-V-VM]]></category>
		<category><![CDATA[MVVM]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[VB.NET]]></category>
		<category><![CDATA[WPF General]]></category>

		<guid isPermaLink="false">http://karlshifflett.wordpress.com/2009/06/17/chicago-wpf-lob-tour-materials-new-materials-added/</guid>
		<description><![CDATA[
Chicago WPF LOB Tour attendees, thank you very much for sharing two wonderful days with Jaime and myself.&#160; It was a real pleasure meeting you and diving into WPF together.&#160; Wish you all great success in your careers.
Downloads 
Slide Decks
Code and Demos
Note: The Code and Demos have been updated with new content.&#160; Developers who attended [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=1007&subd=karlshifflett&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /></p>
<p>Chicago WPF LOB Tour attendees, thank you very much for sharing two wonderful days with Jaime and myself.&nbsp; It was a real pleasure meeting you and diving into WPF together.&nbsp; Wish you all great success in your careers.</p>
<h4>Downloads </h4>
<p><font color="#0066cc"><a href="http://www.cookingwithxaml.com/content/ChicagoLob/decks.zip" target="_blank">Slide Decks</a></font></p>
<p><font color="#0066cc"><a href="http://www.cookingwithxaml.com/content/ChicagoLob/demos.zip" target="_blank">Code and Demos</a></font></p>
<p><strong>Note</strong>: The Code and Demos have been updated with new content.&nbsp; Developers who attended a previous tour, may want to get the latest slides, code and demos.</p>
<p>Have a great day,</p>
</p>
<p><font color="#c0943f">Just a grain of sand on the worlds beaches.</font></p>
Posted in M-V-VM, MVVM, Presentations, VB.NET, WPF General  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlshifflett.wordpress.com/1007/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlshifflett.wordpress.com/1007/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlshifflett.wordpress.com/1007/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlshifflett.wordpress.com/1007/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlshifflett.wordpress.com/1007/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlshifflett.wordpress.com/1007/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlshifflett.wordpress.com/1007/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlshifflett.wordpress.com/1007/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlshifflett.wordpress.com/1007/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlshifflett.wordpress.com/1007/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=1007&subd=karlshifflett&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlshifflett.wordpress.com/2009/06/17/chicago-wpf-lob-tour-materials-new-materials-added/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a76246b869fbb589804c726df582ab60?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Karl Shifflett</media:title>
		</media:content>
	</item>
		<item>
		<title>WPF &#8211; Float Buttons Over Web Browser Control</title>
		<link>http://karlshifflett.wordpress.com/2009/06/13/wpf-float-buttons-over-web-browser-control/</link>
		<comments>http://karlshifflett.wordpress.com/2009/06/13/wpf-float-buttons-over-web-browser-control/#comments</comments>
		<pubDate>Sun, 14 Jun 2009 02:51:19 +0000</pubDate>
		<dc:creator>Karl Shifflett</dc:creator>
				<category><![CDATA[Did You Know]]></category>
		<category><![CDATA[VB.NET]]></category>
		<category><![CDATA[WPF General]]></category>

		<guid isPermaLink="false">http://karlshifflett.wordpress.com/2009/06/13/wpf-float-buttons-over-web-browser-control/</guid>
		<description><![CDATA[ 
Above is a kiosk full screen capture.&#160; Button panel is floating on top of the WebBrowser control.&#160; 
Introduction
We had just finished the Chicago WPF for Line of Business Training Tour and were having refreshments during which, the conversation somehow turned to the question, &#8220;how can I float buttons on top of the WebBrowser control?
It [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=1004&subd=karlshifflett&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://karlshifflett.files.wordpress.com/2009/06/kiosk.jpg"><img style="border-width:0;" height="480" alt="Kiosk" src="http://karlshifflett.files.wordpress.com/2009/06/kiosk_thumb.jpg?w=640&#038;h=480" width="640" border="0"></a> </p>
<p align="left"><em>Above is a kiosk full screen capture.&nbsp; Button panel is floating on top of the WebBrowser control.&nbsp; </em></p>
<h4>Introduction</h4>
<p>We had just finished the Chicago WPF for Line of Business Training Tour and were having refreshments during which, the conversation somehow turned to the question, &#8220;how can I float buttons on top of the WebBrowser control?</p>
<p>It is a well know fact that WPF cannot render UIElements on top of the&nbsp; WebBrowser control.&nbsp; (see <a href="http://msdn.microsoft.com/en-us/library/aa970688.aspx" target="_blank">WPF Interoperation: Airspace and Window Regions Overview</a>)</p>
<p>The developer I was speaking to had a WPF kiosk application that ran a combination of HTML and 3rd party Flash animations.&nbsp; Since their application ran in a kiosk with smaller screens, they needed to be able to float WPF Button controls on top of the WebBrowser control as opposed to giving up some space on one of the edges for their buttons.</p>
<p>Karl being Karl, jump in with both feet and stated with authority, &#8220;of course you can do that.&#8221;&nbsp; (Now I had to man-up and figure this out!)</p>
<p>After a few hours of developers talking shop, I headed up to the hotel room and wrote this application.</p>
<h4>Application</h4>
<p>The application consists of a single border-less, maximized Window.&nbsp; The WebBrowser controls stretches to automatically consume all available screen space.</p>
<p>The below Button bar is a Border control that wraps the four buttons.&nbsp; The buttons are all bound to commands that automatically take care of enabling and disabling the buttons.</p>
<p><a href="http://karlshifflett.files.wordpress.com/2009/06/buttons.jpg"><img style="border-width:0;" height="71" alt="Buttons" src="http://karlshifflett.files.wordpress.com/2009/06/buttons_thumb.jpg?w=378&#038;h=71" width="378" border="0"></a> </p>
<p>Notice that the Border is transparent&nbsp; The blue border is just to show the outline for this article.&nbsp; You can easily modify the layout of the Border&#8217;s contents.</p>
<p>You can also see when the application first loads, the Back and Forward buttons are disabled.&nbsp; After the user navigates, the buttons will be enabled and disabled just like your Internet browsers are.&nbsp; The Home button will take you to my blog, the Exit button will close the application. </p>
<div class="code">
<pre><span style="color:blue;">&lt;</span><span style="color:#a31515;">Grid</span><span style="color:blue;">&gt;
  &lt;</span><span style="color:#a31515;">WebBrowser </span><span style="color:red;">x</span><span style="color:blue;">:</span><span style="color:red;">Name</span><span style="color:blue;">="wbBrowser" /&gt;

  &lt;</span><span style="color:#a31515;">Popup </span><span style="color:red;">x</span><span style="color:blue;">:</span><span style="color:red;">Name</span><span style="color:blue;">="puOverlay" </span><span style="color:red;">AllowsTransparency</span><span style="color:blue;">="True" </span><span style="color:red;">Placement</span><span style="color:blue;">="Bottom"
         </span><span style="color:red;">PlacementTarget</span><span style="color:blue;">="{</span><span style="color:#a31515;">Binding </span><span style="color:red;">ElementName</span><span style="color:blue;">=wbBrowser}"&gt;
    &lt;</span><span style="color:#a31515;">Border </span><span style="color:red;">x</span><span style="color:blue;">:</span><span style="color:red;">Name</span><span style="color:blue;">="bdrOverLay" </span><span style="color:red;">CornerRadius</span><span style="color:blue;">="30" </span><span style="color:red;">BorderBrush</span><span style="color:blue;">="Blue"
            </span><span style="color:red;">Background</span><span style="color:blue;">="#1F000000" </span><span style="color:red;">Padding</span><span style="color:blue;">="7" </span><span style="color:red;">BorderThickness</span><span style="color:blue;">="2"&gt;

      &lt;</span><span style="color:#a31515;">StackPanel </span><span style="color:red;">Orientation</span><span style="color:blue;">="Horizontal"&gt;
        &lt;</span><span style="color:#a31515;">StackPanel.Resources</span><span style="color:blue;">&gt;
          &lt;</span><span style="color:#a31515;">Style </span><span style="color:red;">TargetType</span><span style="color:blue;">="{</span><span style="color:#a31515;">x</span><span style="color:blue;">:</span><span style="color:#a31515;">Type </span><span style="color:red;">Button</span><span style="color:blue;">}"&gt;
            &lt;</span><span style="color:#a31515;">Setter </span><span style="color:red;">Property</span><span style="color:blue;">="Width" </span><span style="color:red;">Value</span><span style="color:blue;">="75" /&gt;
            &lt;</span><span style="color:#a31515;">Setter </span><span style="color:red;">Property</span><span style="color:blue;">="Margin" </span><span style="color:red;">Value</span><span style="color:blue;">="3.5" /&gt;
            &lt;</span><span style="color:#a31515;">Setter </span><span style="color:red;">Property</span><span style="color:blue;">="VerticalAlignment" </span><span style="color:red;">Value</span><span style="color:blue;">="Center" /&gt;
            &lt;</span><span style="color:#a31515;">Setter </span><span style="color:red;">Property</span><span style="color:blue;">="HorizontalAlignment" </span><span style="color:red;">Value</span><span style="color:blue;">="Center" /&gt;
          &lt;/</span><span style="color:#a31515;">Style</span><span style="color:blue;">&gt;
        &lt;/</span><span style="color:#a31515;">StackPanel.Resources</span><span style="color:blue;">&gt;
        &lt;</span><span style="color:#a31515;">Button </span><span style="color:red;">Command</span><span style="color:blue;">="NavigationCommands.BrowseBack" </span><span style="color:red;">Content</span><span style="color:blue;">="Back" /&gt;
        &lt;</span><span style="color:#a31515;">Button </span><span style="color:red;">Command</span><span style="color:blue;">="NavigationCommands.BrowseForward" </span><span style="color:red;">Content</span><span style="color:blue;">="Forward" /&gt;
        &lt;</span><span style="color:#a31515;">Button </span><span style="color:red;">Command</span><span style="color:blue;">="NavigationCommands.BrowseHome" </span><span style="color:red;">Content</span><span style="color:blue;">="Home" /&gt;
        &lt;</span><span style="color:#a31515;">Button </span><span style="color:red;">Command</span><span style="color:blue;">="ApplicationCommands.Close" </span><span style="color:red;">Content</span><span style="color:blue;">="Exit" /&gt;
      &lt;/</span><span style="color:#a31515;">StackPanel</span><span style="color:blue;">&gt;

    &lt;/</span><span style="color:#a31515;">Border</span><span style="color:blue;">&gt;
  &lt;/</span><span style="color:#a31515;">Popup</span><span style="color:blue;">&gt;
&lt;/</span><span style="color:#a31515;">Grid</span><span style="color:blue;">&gt;
</span></pre>
</div>
<p>The above XAML shows the WebBrowser and a single Popup control.&nbsp; The Popup control will render on top of the WebBrowser control because it displays in its own Window.&nbsp; Using some simple positioning code in the Window Loaded event, positions the Button bar centered at the bottom.&nbsp; You can position the Button bar anywhere.</p>
<p>This application allows the kiosk user to interact with the web page and the Button bar using touch screen technology without giving up screen space along one of the edges.</p>
<h4>Special Note</h4>
<p>To the developers I was speaking to at the watering hole that night, I hope this meets your application requirements.</p>
<h4>Download</h4>
<p>After downloading you must change the file extension from .doc to .zip.&nbsp; This is a requirement of WordPress.com</p>
<p><a href="http://karlshifflett.files.wordpress.com/2009/06/ontopofbrowserzip.doc" target="_blank">Source Code (25KB)</a></p>
<p>Have a great day,</p>
<div></div>
<p><span class="" style="color:#c0943f;">Just a grain of sand on the worlds beaches.</span></p>
Posted in Did You Know, VB.NET, WPF General  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlshifflett.wordpress.com/1004/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlshifflett.wordpress.com/1004/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlshifflett.wordpress.com/1004/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlshifflett.wordpress.com/1004/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlshifflett.wordpress.com/1004/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlshifflett.wordpress.com/1004/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlshifflett.wordpress.com/1004/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlshifflett.wordpress.com/1004/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlshifflett.wordpress.com/1004/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlshifflett.wordpress.com/1004/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=1004&subd=karlshifflett&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlshifflett.wordpress.com/2009/06/13/wpf-float-buttons-over-web-browser-control/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a76246b869fbb589804c726df582ab60?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Karl Shifflett</media:title>
		</media:content>

		<media:content url="http://karlshifflett.files.wordpress.com/2009/06/kiosk_thumb.jpg" medium="image">
			<media:title type="html">Kiosk</media:title>
		</media:content>

		<media:content url="http://karlshifflett.files.wordpress.com/2009/06/buttons_thumb.jpg" medium="image">
			<media:title type="html">Buttons</media:title>
		</media:content>
	</item>
		<item>
		<title>WPF Sample Series &#8211; ListBox Grouping, Sorting, Subtotals and Collapsible Regions</title>
		<link>http://karlshifflett.wordpress.com/2009/06/10/wpf-sample-series-listbox-grouping-sorting-subtotals-and-collapsible-regions/</link>
		<comments>http://karlshifflett.wordpress.com/2009/06/10/wpf-sample-series-listbox-grouping-sorting-subtotals-and-collapsible-regions/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 16:06:48 +0000</pubDate>
		<dc:creator>Karl Shifflett</dc:creator>
				<category><![CDATA[Samples]]></category>
		<category><![CDATA[VB.NET]]></category>
		<category><![CDATA[WPF Controls]]></category>
		<category><![CDATA[WPF General]]></category>

		<guid isPermaLink="false">http://karlshifflett.wordpress.com/2009/06/10/wpf-sample-series-listbox-grouping-sorting-subtotals-and-collapsible-regions/</guid>
		<description><![CDATA[This is the next sample in the WPF Sample Applications Series. The purpose of the Sample Series is to provide concise code solutions for specific programming tasks. This sample provides a brief description of the problem, the solution and full source code.
Introduction
These past few months I&#8217;ve been privileged to be a part of the WPF [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=995&subd=karlshifflett&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>This is the next sample in the WPF Sample Applications Series. The purpose of the Sample Series is to provide concise code solutions for specific programming tasks. This sample provides a brief description of the problem, the solution and full source code.</p>
<h4>Introduction</h4>
<p>These past few months I&#8217;ve been privileged to be a part of the WPF for Line of Business Training Tour.&nbsp; What I really love is to be around developers excited about the WPF platform.&nbsp; At each city I got requests from attendees to show them how to accomplish a task in WPF.&nbsp; During a break I would sit down and write the code and usually I add the code to the session downloads.</p>
<p>This sample is the result of the question, &#8220;how can I do multi-level grouping?&#8221;</p>
<h4>Application</h4>
<p>All regions have been collapsed.&nbsp; Count of Account Mangers is displayed along with the sales in dollars.</p>
<p><a href="http://karlshifflett.files.wordpress.com/2009/06/listboxone.jpg"><img style="border-width:0;" height="202" alt="ListBoxOne" src="http://karlshifflett.files.wordpress.com/2009/06/listboxone_thumb.jpg?w=491&#038;h=202" width="491" border="0"></a> </p>
<p>The West region has been expanded along with the child states.&nbsp; Notice the state grouping level has totals for its state.&nbsp; Account Manages have their name and sales figure displayed.</p>
<p><a href="http://karlshifflett.files.wordpress.com/2009/06/listboxtwojpg.jpg"><img style="border-width:0;" height="436" alt="ListBoxTwoJPG" src="http://karlshifflett.files.wordpress.com/2009/06/listboxtwojpg_thumb.jpg?w=489&#038;h=436" width="489" border="0"></a>&nbsp;</p>
<h4>Application Requirements</h4>
<ul>
<li>Grouping levels must be collapsible
<li>Display total sales for Account Managers in the level
<li>Display count of Account Managers in the level
<li>Display the familiar &#8220;+&#8221; and &#8220;-&#8221; icon for expanding and collapsing levels
<li>Sort data by region, state and sales descending</li>
</ul>
<h4>Grouping and Sorting</h4>
<div class="code">
<pre><span style="color:blue;">&lt;</span><span style="color:#a31515;">CollectionViewSource </span><span style="color:red;">Source</span><span style="color:blue;">="{</span><span style="color:#a31515;">x</span><span style="color:blue;">:</span><span style="color:#a31515;">Static </span><span style="color:red;">local</span><span style="color:blue;">:</span><span style="color:red;">Data</span><span style="color:blue;">.AccountManagers}" </span><span style="color:red;">x</span><span style="color:blue;">:</span><span style="color:red;">Key</span><span style="color:blue;">="cvs"&gt;
    &lt;</span><span style="color:#a31515;">CollectionViewSource.SortDescriptions</span><span style="color:blue;">&gt;
        &lt;</span><span style="color:#a31515;">scm</span><span style="color:blue;">:</span><span style="color:#a31515;">SortDescription </span><span style="color:red;">PropertyName</span><span style="color:blue;">="Region" /&gt;
        &lt;</span><span style="color:#a31515;">scm</span><span style="color:blue;">:</span><span style="color:#a31515;">SortDescription </span><span style="color:red;">PropertyName</span><span style="color:blue;">="State" /&gt;
        &lt;</span><span style="color:#a31515;">scm</span><span style="color:blue;">:</span><span style="color:#a31515;">SortDescription </span><span style="color:red;">PropertyName</span><span style="color:blue;">="Sales" </span><span style="color:red;">Direction</span><span style="color:blue;">="Descending" /&gt;
    &lt;/</span><span style="color:#a31515;">CollectionViewSource.SortDescriptions</span><span style="color:blue;">&gt;
    &lt;</span><span style="color:#a31515;">CollectionViewSource.GroupDescriptions</span><span style="color:blue;">&gt;
        &lt;</span><span style="color:#a31515;">PropertyGroupDescription </span><span style="color:red;">PropertyName</span><span style="color:blue;">="Region" /&gt;
        &lt;</span><span style="color:#a31515;">PropertyGroupDescription </span><span style="color:red;">PropertyName</span><span style="color:blue;">="State" /&gt;
    &lt;/</span><span style="color:#a31515;">CollectionViewSource.GroupDescriptions</span><span style="color:blue;">&gt;
&lt;/</span><span style="color:#a31515;">CollectionViewSource</span><span style="color:blue;">&gt;</span></pre>
</div>
<p>WPF provides the <a href="http://msdn.microsoft.com/en-us/library/system.windows.data.collectionviewsource.aspx" target="_blank">CollectionViewSource</a> for codeless sorting and grouping of data.&nbsp; The SortDescriptions and GroupDescriptions collections can be modified at runtime if desired.&nbsp; The SortDescription provides the ability to set the sort direction as I&#8217;ve done for the Sales.</p>
<p>The ListBox consumes the CollectionViewSource data by assigning the ListBox.ItemsSource property to the CollectionViewSource resource.</p>
<p><strong>Note</strong>:&nbsp; I&#8217;ve assigned the Source to a static property so that I can have design time data and rending of the ListBox during development.</p>
<h4>ListBox.GroupStyle</h4>
<p>The ListBox.GroupStyle does all the heaving lifting for rendering the group level headers.&nbsp; You have several options when working with GroupStyles.&nbsp; </p>
<ul>
<li>Define a GroupStyle.HeaderTemplate
<li>Define a GroupStyle.ContainerStyle
<li>Use a HeaderTemplateSelector to select the HeaderTemplate at runtime
<li>Use a ContainerStyleSelector to select the ContainerStyle at runtime</li>
</ul>
<p>For this application, I&#8217;ve chosen to define a ContainerStyle in XAML.</p>
<p>When defining a ContainerStyle, we will re-template the GroupItem that gets created for each level of grouping.</p>
<p>The purpose of re-templating the GroupItem is so that we have full control over how level is rendered.</p>
<div class="code">
<pre><span style="color:blue;">&lt;</span><span style="color:#a31515;">ListBox.GroupStyle</span><span style="color:blue;">&gt;
  &lt;</span><span style="color:#a31515;">GroupStyle</span><span style="color:blue;">&gt;
    &lt;</span><span style="color:#a31515;">GroupStyle.ContainerStyle</span><span style="color:blue;">&gt;
      &lt;</span><span style="color:#a31515;">Style </span><span style="color:red;">TargetType</span><span style="color:blue;">="{</span><span style="color:#a31515;">x</span><span style="color:blue;">:</span><span style="color:#a31515;">Type </span><span style="color:red;">GroupItem</span><span style="color:blue;">}"&gt;
        &lt;</span><span style="color:#a31515;">Setter </span><span style="color:red;">Property</span><span style="color:blue;">="Template"&gt;
          &lt;</span><span style="color:#a31515;">Setter.Value</span><span style="color:blue;">&gt;
            &lt;</span><span style="color:#a31515;">ControlTemplate </span><span style="color:red;">TargetType</span><span style="color:blue;">="{</span><span style="color:#a31515;">x</span><span style="color:blue;">:</span><span style="color:#a31515;">Type </span><span style="color:red;">GroupItem</span><span style="color:blue;">}"&gt;
              &lt;</span><span style="color:#a31515;">ControlTemplate.Triggers</span><span style="color:blue;">&gt;
                &lt;</span><span style="color:#a31515;">DataTrigger </span><span style="color:red;">Binding</span><span style="color:blue;">="{</span><span style="color:#a31515;">Binding </span><span style="color:red;">Path</span><span style="color:blue;">=IsBottomLevel}" </span><span style="color:red;">Value</span><span style="color:blue;">="True"&gt;
                  &lt;</span><span style="color:#a31515;">Setter </span><span style="color:red;">TargetName</span><span style="color:blue;">="gridTemplate" </span><span style="color:red;">Property</span><span style="color:blue;">="Grid.Background"
                          </span><span style="color:red;">Value</span><span style="color:blue;">="#FF965F00" /&gt;
                &lt;/</span><span style="color:#a31515;">DataTrigger</span><span style="color:blue;">&gt;
              &lt;/</span><span style="color:#a31515;">ControlTemplate.Triggers</span><span style="color:blue;">&gt;
              &lt;</span><span style="color:#a31515;">Grid</span><span style="color:blue;">&gt;
                &lt;</span><span style="color:#a31515;">Grid.RowDefinitions</span><span style="color:blue;">&gt;
                  &lt;</span><span style="color:#a31515;">RowDefinition </span><span style="color:blue;">/&gt;
                  &lt;</span><span style="color:#a31515;">RowDefinition </span><span style="color:blue;">/&gt;
                &lt;/</span><span style="color:#a31515;">Grid.RowDefinitions</span><span style="color:blue;">&gt;
                &lt;</span><span style="color:#a31515;">Grid </span><span style="color:red;">Background</span><span style="color:blue;">="Black" </span><span style="color:red;">x</span><span style="color:blue;">:</span><span style="color:red;">Name</span><span style="color:blue;">="gridTemplate" </span><span style="color:red;">Height</span><span style="color:blue;">="26"
                      </span><span style="color:red;">VerticalAlignment</span><span style="color:blue;">="Center"&gt;
                  &lt;</span><span style="color:#a31515;">Grid.Resources</span><span style="color:blue;">&gt;
                    &lt;</span><span style="color:#a31515;">Style </span><span style="color:red;">TargetType</span><span style="color:blue;">="{</span><span style="color:#a31515;">x</span><span style="color:blue;">:</span><span style="color:#a31515;">Type </span><span style="color:red;">TextBlock</span><span style="color:blue;">}"&gt;
                      &lt;</span><span style="color:#a31515;">Setter </span><span style="color:red;">Property</span><span style="color:blue;">="FontSize" </span><span style="color:red;">Value</span><span style="color:blue;">="14" /&gt;
                      &lt;</span><span style="color:#a31515;">Setter </span><span style="color:red;">Property</span><span style="color:blue;">="Foreground" </span><span style="color:red;">Value</span><span style="color:blue;">="White" /&gt;
                      &lt;</span><span style="color:#a31515;">Setter </span><span style="color:red;">Property</span><span style="color:blue;">="VerticalAlignment" </span><span style="color:red;">Value</span><span style="color:blue;">="Center" /&gt;
                    &lt;/</span><span style="color:#a31515;">Style</span><span style="color:blue;">&gt;
                  &lt;/</span><span style="color:#a31515;">Grid.Resources</span><span style="color:blue;">&gt;
                  &lt;</span><span style="color:#a31515;">Grid.ColumnDefinitions</span><span style="color:blue;">&gt;
                    &lt;</span><span style="color:#a31515;">ColumnDefinition </span><span style="color:red;">Width</span><span style="color:blue;">="Auto" /&gt;
                    &lt;</span><span style="color:#a31515;">ColumnDefinition </span><span style="color:red;">Width</span><span style="color:blue;">="*" /&gt;
                    &lt;</span><span style="color:#a31515;">ColumnDefinition </span><span style="color:red;">Width</span><span style="color:blue;">="45" /&gt;
                    &lt;</span><span style="color:#a31515;">ColumnDefinition </span><span style="color:red;">Width</span><span style="color:blue;">="30" /&gt;
                    &lt;</span><span style="color:#a31515;">ColumnDefinition </span><span style="color:red;">Width</span><span style="color:blue;">="110" /&gt;
                  &lt;/</span><span style="color:#a31515;">Grid.ColumnDefinitions</span><span style="color:blue;">&gt;

                  &lt;</span><span style="color:#a31515;">ToggleButton </span><span style="color:red;">x</span><span style="color:blue;">:</span><span style="color:red;">Name</span><span style="color:blue;">="btnShowHide" </span><span style="color:red;">IsChecked</span><span style="color:blue;">="True" </span><span style="color:red;">Margin</span><span style="color:blue;">="3.5" /&gt;

                  &lt;</span><span style="color:#a31515;">TextBlock </span><span style="color:red;">Grid.Column</span><span style="color:blue;">="1" </span><span style="color:red;">Text</span><span style="color:blue;">="{</span><span style="color:#a31515;">Binding </span><span style="color:red;">Path</span><span style="color:blue;">=Name}" </span><span style="color:red;">Margin</span><span style="color:blue;">="3.5,0" /&gt;
                  &lt;</span><span style="color:#a31515;">TextBlock </span><span style="color:red;">Grid.Column</span><span style="color:blue;">="2" </span><span style="color:red;">Text</span><span style="color:blue;">="Count:" /&gt;
                  &lt;</span><span style="color:#a31515;">TextBlock </span><span style="color:red;">Grid.Column</span><span style="color:blue;">="3" </span><span style="color:red;">Text</span><span style="color:blue;">="{</span><span style="color:#a31515;">Binding </span><span style="color:red;">Path</span><span style="color:blue;">=ItemCount}"
                             </span><span style="color:red;">TextAlignment</span><span style="color:blue;">="Right" </span><span style="color:red;">Margin</span><span style="color:blue;">="0,0,11,0" /&gt;
                  &lt;</span><span style="color:#a31515;">TextBlock </span><span style="color:red;">Grid.Column</span><span style="color:blue;">="4"
                             </span><span style="color:red;">Text</span><span style="color:blue;">="{</span><span style="color:#a31515;">Binding </span><span style="color:red;">StringFormat</span><span style="color:blue;">=</span>\<span style="color:blue;">{</span>0<span style="color:blue;">:</span><span style="color:#a31515;">C</span>\<span style="color:blue;">},
                            </span><span style="color:red;">Converter</span><span style="color:blue;">={</span><span style="color:#a31515;">StaticResource </span><span style="color:red;">groupItemSalesSubtotalConverter</span><span style="color:blue;">}}"
                             </span><span style="color:red;">TextAlignment</span><span style="color:blue;">="Right" /&gt;
                &lt;/</span><span style="color:#a31515;">Grid</span><span style="color:blue;">&gt;

                &lt;</span><span style="color:#a31515;">ItemsPresenter
                  </span><span style="color:red;">Visibility</span><span style="color:blue;">="{</span><span style="color:#a31515;">Binding </span><span style="color:red;">ElementName</span><span style="color:blue;">=btnShowHide,
                                </span><span style="color:red;">Path</span><span style="color:blue;">=IsChecked,
                                </span><span style="color:red;">Converter</span><span style="color:blue;">={</span><span style="color:#a31515;">StaticResource </span><span style="color:red;">booleanToVisibilityConverter</span><span style="color:blue;">}}"
                  </span><span style="color:red;">Grid.Row</span><span style="color:blue;">="1" </span><span style="color:red;">Margin</span><span style="color:blue;">="11,0,0,3.5" /&gt;

              &lt;/</span><span style="color:#a31515;">Grid</span><span style="color:blue;">&gt;
            &lt;/</span><span style="color:#a31515;">ControlTemplate</span><span style="color:blue;">&gt;
          &lt;/</span><span style="color:#a31515;">Setter.Value</span><span style="color:blue;">&gt;
        &lt;/</span><span style="color:#a31515;">Setter</span><span style="color:blue;">&gt;
      &lt;/</span><span style="color:#a31515;">Style</span><span style="color:blue;">&gt;
    &lt;/</span><span style="color:#a31515;">GroupStyle.ContainerStyle</span><span style="color:blue;">&gt;
  &lt;/</span><span style="color:#a31515;">GroupStyle</span><span style="color:blue;">&gt;
&lt;/</span><span style="color:#a31515;">ListBox.GroupStyle</span><span style="color:blue;">&gt;</span></pre>
</div>
<p>The DataContext for a GroupItem is a <a href="http://msdn.microsoft.com/en-us/library/system.windows.data.collectionviewgroup.aspx" target="_blank">CollectionViewGroup</a>.</p>
<p>In this ControlTemplate we will bind to the following properties of the CollectionViewGroup:</p>
<ul>
<li>IsBottom &#8211; used by DataTrigger to set level heading Background
<li>Name &#8211; used to display the level&#8217;s heading text
<li>ItemCount &#8211; used to display the number of members in this level</li>
</ul>
<h6>Collapsible Group Levels</h6>
<p>The ToggleButton has been re-templated to display an image that indicates the state of the Button.&nbsp; (see download for template)</p>
<p>The ItemsPresenter at the bottom of the template is where the data items will be rendered.&nbsp; </p>
<p>Using the built-in BooleanToVisibilityConvert and binding the ItemsPresenter.Visibility property to the ToggleButton.IsChecked property, we get simple, codeless collapse and expand behavior of the data members.</p>
<p>You really have to admire the sheer power of WPF here.</p>
<h6>Subtotals</h6>
<p>The last TextBlock Text property has a strange Binding.&nbsp; There is no path.&nbsp; When the converter is called, the DataContext will be passed as the value to the converter.&nbsp; In this code the CollectionViewGroup will be passed to the converter.</p>
<div class="code">
<pre class="code"><span style="color:blue;">Imports </span>System.Windows.Data

&lt;ValueConversion(<span style="color:blue;">GetType</span>(CollectionViewGroup), <span style="color:blue;">GetType</span>(<span style="color:blue;">Double</span>))&gt; _
<span style="color:blue;">Public Class </span>GroupItemSalesSubtotalConverter
  <span style="color:blue;">Implements </span>IValueConverter

  <span style="color:blue;">Public Function </span>Convert( _
    <span style="color:blue;">ByVal </span>value <span style="color:blue;">As Object</span>, <span style="color:blue;">ByVal </span>targetType <span style="color:blue;">As </span>System.Type, _
    <span style="color:blue;">ByVal </span>parameter <span style="color:blue;">As Object</span>, <span style="color:blue;">ByVal </span>culture <span style="color:blue;">As </span>System.Globalization.CultureInfo) _
      <span style="color:blue;">As Object Implements </span>System.Windows.Data.IValueConverter.Convert

    <span style="color:blue;">If </span>value <span style="color:blue;">IsNot Nothing AndAlso TypeOf </span>value <span style="color:blue;">Is </span>CollectionViewGroup <span style="color:blue;">Then
      Return </span>GetSubTotal(<span style="color:blue;">DirectCast</span>(value, CollectionViewGroup))
    <span style="color:blue;">Else
      Return Nothing
    End If

  End Function

  Private Function </span>GetSubTotal(<span style="color:blue;">ByVal </span>obj <span style="color:blue;">As </span>CollectionViewGroup) <span style="color:blue;">As Double

    Dim </span>dbl <span style="color:blue;">As Double
    For Each </span>objItem <span style="color:blue;">As Object In </span>obj.Items
      <span style="color:blue;">If TypeOf </span>objItem <span style="color:blue;">Is </span>AccountManager <span style="color:blue;">Then
        </span>dbl += <span style="color:blue;">DirectCast</span>(objItem, AccountManager).Sales
      <span style="color:blue;">Else
        </span>dbl += GetSubTotal(objItem)
      <span style="color:blue;">End If
    Next
    Return </span>dbl
  <span style="color:blue;">End Function

  Public Function </span>ConvertBack( _
    <span style="color:blue;">ByVal </span>value <span style="color:blue;">As Object</span>, <span style="color:blue;">ByVal </span>targetType <span style="color:blue;">As </span>System.Type, _
    <span style="color:blue;">ByVal </span>parameter <span style="color:blue;">As Object</span>, <span style="color:blue;">ByVal </span>culture <span style="color:blue;">As </span>System.Globalization.CultureInfo) _
      <span style="color:blue;">As Object Implements </span>System.Windows.Data.IValueConverter.ConvertBack

    <span style="color:blue;">Throw New </span>NotImplementedException

  <span style="color:blue;">End Function

End Class</span></pre>
</div>
<p>This converter uses recursion to drill down to each member of the level and calculate a sales subtotal.</p>
<h4>ListBox.ItemTemplate</h4>
<div class="code">
<pre><span style="color:blue;">&lt;</span><span style="color:#a31515;">ListBox.ItemTemplate</span><span style="color:blue;">&gt;
  &lt;</span><span style="color:#a31515;">DataTemplate</span><span style="color:blue;">&gt;
    &lt;</span><span style="color:#a31515;">DockPanel</span><span style="color:blue;">&gt;
      &lt;</span><span style="color:#a31515;">TextBlock </span><span style="color:red;">DockPanel.Dock</span><span style="color:blue;">="Right" </span><span style="color:red;">HorizontalAlignment</span><span style="color:blue;">="Right"
                 </span><span style="color:red;">Text</span><span style="color:blue;">="{</span><span style="color:#a31515;">Binding </span><span style="color:red;">Path</span><span style="color:blue;">=Sales, </span><span style="color:red;">StringFormat</span><span style="color:blue;">=C}" /&gt;

      &lt;</span><span style="color:#a31515;">TextBlock </span><span style="color:red;">Text</span><span style="color:blue;">="{</span><span style="color:#a31515;">Binding </span><span style="color:red;">Path</span><span style="color:blue;">=FullName}" /&gt;

    &lt;/</span><span style="color:#a31515;">DockPanel</span><span style="color:blue;">&gt;
  &lt;/</span><span style="color:#a31515;">DataTemplate</span><span style="color:blue;">&gt;
&lt;/</span><span style="color:#a31515;">ListBox.ItemTemplate</span><span style="color:blue;">&gt;</span></pre>
</div>
<p>The ListBox.ItemTemplate is used when rendering the AccountManager data items.&nbsp; A DockPanel provides the required layout.&nbsp; The TextBlocks are data bound to properties on the AccountManager class.</p>
<h4>Download</h4>
<p>After downloading you must change the file extension from .doc to .zip.&nbsp; This is a requirement of WordPress.com</p>
<p><a href="http://karlshifflett.files.wordpress.com/2009/06/listboxcollapsiblegroupszip.doc" target="_blank">Source Code (32KB)</a></p>
<p>Hope you can learn a little more about WPF from this article and the Sample Series.</p>
<p>Have a great day,</p>
</p>
<p><font color="#c0943f">Just a grain of sand on the worlds beaches.</font></p>
Posted in Samples, VB.NET, WPF Controls, WPF General  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlshifflett.wordpress.com/995/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlshifflett.wordpress.com/995/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlshifflett.wordpress.com/995/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlshifflett.wordpress.com/995/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlshifflett.wordpress.com/995/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlshifflett.wordpress.com/995/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlshifflett.wordpress.com/995/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlshifflett.wordpress.com/995/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlshifflett.wordpress.com/995/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlshifflett.wordpress.com/995/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=995&subd=karlshifflett&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlshifflett.wordpress.com/2009/06/10/wpf-sample-series-listbox-grouping-sorting-subtotals-and-collapsible-regions/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a76246b869fbb589804c726df582ab60?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Karl Shifflett</media:title>
		</media:content>

		<media:content url="http://karlshifflett.files.wordpress.com/2009/06/listboxone_thumb.jpg" medium="image">
			<media:title type="html">ListBoxOne</media:title>
		</media:content>

		<media:content url="http://karlshifflett.files.wordpress.com/2009/06/listboxtwojpg_thumb.jpg" medium="image">
			<media:title type="html">ListBoxTwoJPG</media:title>
		</media:content>
	</item>
		<item>
		<title>Phoenix WPF LOB Tour Materials (previous attendees this has new material)</title>
		<link>http://karlshifflett.wordpress.com/2009/06/10/phoenix-wpf-lob-tour-materials-previous-attendees-this-has-new-material/</link>
		<comments>http://karlshifflett.wordpress.com/2009/06/10/phoenix-wpf-lob-tour-materials-previous-attendees-this-has-new-material/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 12:50:01 +0000</pubDate>
		<dc:creator>Karl Shifflett</dc:creator>
				<category><![CDATA[Data Binding]]></category>
		<category><![CDATA[Demonstrations]]></category>
		<category><![CDATA[M-V-VM]]></category>
		<category><![CDATA[MVVM]]></category>
		<category><![CDATA[VB.NET]]></category>
		<category><![CDATA[WPF Controls]]></category>
		<category><![CDATA[WPF General]]></category>

		<guid isPermaLink="false">http://karlshifflett.wordpress.com/2009/06/10/phoenix-wpf-lob-tour-materials-previous-attendees-this-has-new-material/</guid>
		<description><![CDATA[Phoenix developers, thank you so very much for your hospitality and a wonderful time in your city.&#160; Big time hats off to the Sheraton Four Points Phoenix North hotel too.&#160; They gave us all 5 Star service.
Big thanks to Tim Heuer for organizing the Hawaiian shirt day on Friday!&#160; Picture can be viewed here.
Downloads 
Slide [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=989&subd=karlshifflett&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Phoenix developers, thank you so very much for your hospitality and a wonderful time in your city.&nbsp; Big time hats off to the Sheraton Four Points Phoenix North hotel too.&nbsp; They gave us all 5 Star service.</p>
<p>Big thanks to <a href="http://timheuer.com/blog/" target="_blank">Tim Heuer</a> for organizing the Hawaiian shirt day on Friday!&nbsp; Picture can be viewed <a href="http://www.flickr.com/photos/scottcate/3599397912/sizes/l/in/photostream/" target="_blank">here</a>.</p>
<h4>Downloads </h4>
<p><a href="http://www.cookingwithxaml.com/content/phxlob/decks.zip" target="_blank">Slide Decks</a></p>
<p><a href="http://www.cookingwithxaml.com/content/phxlob/demos.zip" target="_blank">Code and Demos</a></p>
<p><strong>Note</strong>: The Code and Demos have been updated with new content.&nbsp; Developers who attended a previous tour, may want to get the latest slides, code and demos.</p>
<p>Looking forward to Chicago this Friday.</p>
<p>Have a great day,</p>
</p>
<p><font color="#c0943f">Just a grain of sand on the worlds beaches.</font></p>
Posted in Data Binding, Demonstrations, M-V-VM, MVVM, VB.NET, WPF Controls, WPF General  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlshifflett.wordpress.com/989/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlshifflett.wordpress.com/989/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlshifflett.wordpress.com/989/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlshifflett.wordpress.com/989/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlshifflett.wordpress.com/989/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlshifflett.wordpress.com/989/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlshifflett.wordpress.com/989/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlshifflett.wordpress.com/989/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlshifflett.wordpress.com/989/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlshifflett.wordpress.com/989/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=989&subd=karlshifflett&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlshifflett.wordpress.com/2009/06/10/phoenix-wpf-lob-tour-materials-previous-attendees-this-has-new-material/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a76246b869fbb589804c726df582ab60?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Karl Shifflett</media:title>
		</media:content>
	</item>
		<item>
		<title>Glimpse for Silverlight &#8211; Viewing Exceptions and Binding Errors</title>
		<link>http://karlshifflett.wordpress.com/2009/06/08/glimpse-for-silverlight-viewing-exceptions-and-binding-errors/</link>
		<comments>http://karlshifflett.wordpress.com/2009/06/08/glimpse-for-silverlight-viewing-exceptions-and-binding-errors/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 16:31:50 +0000</pubDate>
		<dc:creator>Karl Shifflett</dc:creator>
				<category><![CDATA[Data Binding]]></category>
		<category><![CDATA[Exceptions]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[VB.NET]]></category>

		<guid isPermaLink="false">http://karlshifflett.wordpress.com/2009/06/08/glimpse-for-silverlight-viewing-exceptions-and-binding-errors/</guid>
		<description><![CDATA[ 
Introduction
After my previous blog post, &#8220;Troubleshoot Silverlight 3 Data Bindings&#8221; I got some feedback and while in Phoenix I upgraded the code and have decided to call this Glimpse.
This initial release of Glimpse is a proof of concept project.&#160; As I spend more time working with Silverlight 3, I&#8217;ll add more instrumentation views (Mole [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=986&subd=karlshifflett&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://karlshifflett.files.wordpress.com/2009/06/glimpseonload.jpg"><img style="border-width:0;" height="480" alt="GlimpseOnLoad" src="http://karlshifflett.files.wordpress.com/2009/06/glimpseonload_thumb.jpg?w=437&#038;h=480" width="437" border="0"></a> </p>
<h4>Introduction</h4>
<p>After my previous blog post, &#8220;Troubleshoot Silverlight 3 Data Bindings&#8221; I got some feedback and while in Phoenix I upgraded the code and have decided to call this Glimpse.</p>
<p>This initial release of Glimpse is a proof of concept project.&nbsp; As I spend more time working with Silverlight 3, I&#8217;ll add more instrumentation views (Mole for Silverlight anyone?)</p>
<p><u>What is cool about Glimpse is that it can be used for local <strong>debug</strong> or deployed <strong>release</strong> <strong>builds</strong>.</u>&nbsp; It takes a single line of code to crank it up.</p>
<p>BTW:&nbsp; I have not had a chance to make the UI pretty in Blend yet.&nbsp; So go easy on Karl&#8217;s Moletones UI.</p>
<h4>Glimpse Viewer Control</h4>
<p>The Glimpse Viewer Control is hosted inside a <a href="http://timheuer.com/blog/archive/2009/05/10/silverlight-childwindow-non-modal-refactor.aspx" target="_blank">Floatable Window</a>.&nbsp; <a href="http://timheuer.com/blog/" target="_blank">Tim Heuer</a> has a <a href="http://timheuer.com/blog/archive/2009/05/10/silverlight-childwindow-non-modal-refactor.aspx" target="_blank">great post</a> on how he modifed the default Silverlight ChildWindow so that it can be modal or non-modal.</p>
<p>I took Tim&#8217;s implementation and added the ability to set the location of the Floatable Window.&nbsp; My code is in the Download section below.</p>
<h4>Launching Glimpse</h4>
<p><a href="http://karlshifflett.files.wordpress.com/2009/06/glimpselaunching.png"><img style="border-width:0;" height="364" alt="GlimpseLaunching" src="http://karlshifflett.files.wordpress.com/2009/06/glimpselaunching_thumb.png?w=680&#038;h=364" width="680" border="0"></a> </p>
<p>Glimpse is launched with a single line of code, passing the Application object and a string name for the Silverlight control.&nbsp; If you have more that one Silverlight control on a web page, the name helps to know what control that Glimpse is providing information for.</p>
<p>In the above code, I&#8217;m testing if the current build is a DEBUG build. If so, launch Glimpse.&nbsp; In your applications you can use other techniques for determining if Glimpse should be launched.</p>
<p>If your MainPage object throws an exception during object construction, Glimpse will display an Exception Viewer that will show you the exception and any inner exceptions.</p>
<p>To demonstrate this feature, you can uncomment the code in the MainPage constructor and then run the demo application.</p>
<p><a href="http://karlshifflett.files.wordpress.com/2009/06/glimpseobjectconstructionexception.jpg"><img style="border-width:0;" height="244" alt="GlimpseObjectConstructionException" src="http://karlshifflett.files.wordpress.com/2009/06/glimpseobjectconstructionexception_thumb.jpg?w=600&#038;h=244" width="600" border="0"></a> </p>
<h4>Load Exception Viewer</h4>
<p>The above code has outer and inner exceptions.&nbsp; This viewer will display the outer exception and all nested inner exceptions.</p>
<p><a href="http://karlshifflett.files.wordpress.com/2009/06/glimpseexceptionviewer.png"><img style="border-width:0;" height="327" alt="GlimpseExceptionViewer" src="http://karlshifflett.files.wordpress.com/2009/06/glimpseexceptionviewer_thumb.png?w=600&#038;h=327" width="600" border="0"></a> </p>
<h4>Application Unhandled Exceptions</h4>
<p>When your Silverlight application has an application unhandled exception, the Glimpse Viewer Control will display a red ellipse on the right with a number indicating the number of unhandled exceptions.</p>
<ul>
<li>Click the Expand button to display the Glimpse Viewer information
<li>To return to contracted mode, click the Contract button
<li>To clear the list of exceptions, click the Clear Exceptions button</li>
</ul>
<p><a href="http://karlshifflett.files.wordpress.com/2009/06/glimpsecontrolunhandledexceptionnotification.png"><img style="border-width:0;" height="117" alt="GlimpseControlUnhandledExceptionNotification" src="http://karlshifflett.files.wordpress.com/2009/06/glimpsecontrolunhandledexceptionnotification_thumb.png?w=208&#038;h=117" width="208" border="0"></a> </p>
<p><a href="http://karlshifflett.files.wordpress.com/2009/06/glimpseunhandledexception.jpg"><img style="border-width:0;" height="430" alt="GlimpseUnhandledException" src="http://karlshifflett.files.wordpress.com/2009/06/glimpseunhandledexception_thumb.jpg?w=640&#038;h=430" width="640" border="0"></a> </p>
<h4>Data Binding Exceptions</h4>
<p>When your Silverlight application has an binding validation exception, the Glimpse Viewer Control will display a red ellipse on the left with a number indicating the number of exceptions.</p>
<p>In the below image, the Birthday field has text that can&#8217;t be converted into a date. </p>
<p><a href="http://karlshifflett.files.wordpress.com/2009/06/glimpsedatabindingexception.png"><img style="border-width:0;" height="350" alt="GlimpseDataBindingException" src="http://karlshifflett.files.wordpress.com/2009/06/glimpsedatabindingexception_thumb.png?w=504&#038;h=350" width="504" border="0"></a> </p>
<p>Pressing the Expand button displays the data binding validation exception.&nbsp; This will also show any inner exceptions if they are present.</p>
<p>Notice the (Added) text on the left and field on the right.&nbsp; This is the <font size="2">ValidationErrorEventAction </font>property for the ValidationError.&nbsp; When the validation error is cleared, the text will display &#8220;(Removed)&#8221;.</p>
<p><a href="http://karlshifflett.files.wordpress.com/2009/06/glimpsedatabindingexceptiondetial.png"><img style="border-width:0;" height="401" alt="GlimpseDataBindingExceptionDetial" src="http://karlshifflett.files.wordpress.com/2009/06/glimpsedatabindingexceptiondetial_thumb.png?w=600&#038;h=401" width="600" border="0"></a> </p>
<h4>Bindings with no Source</h4>
<p>The below image shows the Path with a typo, an &#8220;x&#8221; has been added to the correct property name &#8220;FirstName&#8221;.&nbsp; This will cause a binding failure.</p>
<p><a href="http://karlshifflett.files.wordpress.com/2009/06/glimpsenobindingxaml.png"><img style="border-width:0;" height="81" alt="GlimpseNoBindingXAML" src="http://karlshifflett.files.wordpress.com/2009/06/glimpsenobindingxaml_thumb.png?w=450&#038;h=81" width="450" border="0"></a> </p>
<p>The below viewer provide information on all broken bindings in the host Silverlight control.&nbsp; Binding errors are resolved each time the &#8220;Bindings with no Source&#8221; tab is selected.</p>
<p><a href="http://karlshifflett.files.wordpress.com/2009/06/glimpsenobindings.png"><img style="border-width:0;" height="401" alt="GlimpseNoBindings" src="http://karlshifflett.files.wordpress.com/2009/06/glimpsenobindings_thumb.png?w=600&#038;h=401" width="600" border="0"></a> </p>
<h4>From Here</h4>
<p>I have two projects that I want to launch on my blog, then I&#8217;ll take any feedback and add more views to the Glimpse Viewer Control.</p>
<p>What is nice about this approach is that you can launch Glimpse on a deployed production Silverlight control that needs some debugging love on a remote server in addition to using it during Silverlight control development.</p>
<h4>Downloads</h4>
<p>After downloading the below project, you must change the file extension from .doc to .zip, this is a requirement of WordPress.com.</p>
<p><a href="http://karlshifflett.files.wordpress.com/2009/06/debugsilverlightdatabindingszip1.doc" target="_blank">Glimpse Control and Demo Project (61KB)</a></p>
<p><a href="http://karlshifflett.files.wordpress.com/2009/06/floatablewindow_karlzip.doc" target="_blank">Karl&#8217;s Floatable Window&nbsp; (22KB)</a></p>
<p>Have a great day,</p>
</p>
<p><font color="#c0943f">Just a grain of sand on the worlds beaches.</font></p>
Posted in Data Binding, Exceptions, Silverlight, VB.NET  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlshifflett.wordpress.com/986/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlshifflett.wordpress.com/986/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlshifflett.wordpress.com/986/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlshifflett.wordpress.com/986/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlshifflett.wordpress.com/986/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlshifflett.wordpress.com/986/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlshifflett.wordpress.com/986/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlshifflett.wordpress.com/986/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlshifflett.wordpress.com/986/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlshifflett.wordpress.com/986/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=986&subd=karlshifflett&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlshifflett.wordpress.com/2009/06/08/glimpse-for-silverlight-viewing-exceptions-and-binding-errors/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a76246b869fbb589804c726df582ab60?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Karl Shifflett</media:title>
		</media:content>

		<media:content url="http://karlshifflett.files.wordpress.com/2009/06/glimpseonload_thumb.jpg" medium="image">
			<media:title type="html">GlimpseOnLoad</media:title>
		</media:content>

		<media:content url="http://karlshifflett.files.wordpress.com/2009/06/glimpselaunching_thumb.png" medium="image">
			<media:title type="html">GlimpseLaunching</media:title>
		</media:content>

		<media:content url="http://karlshifflett.files.wordpress.com/2009/06/glimpseobjectconstructionexception_thumb.jpg" medium="image">
			<media:title type="html">GlimpseObjectConstructionException</media:title>
		</media:content>

		<media:content url="http://karlshifflett.files.wordpress.com/2009/06/glimpseexceptionviewer_thumb.png" medium="image">
			<media:title type="html">GlimpseExceptionViewer</media:title>
		</media:content>

		<media:content url="http://karlshifflett.files.wordpress.com/2009/06/glimpsecontrolunhandledexceptionnotification_thumb.png" medium="image">
			<media:title type="html">GlimpseControlUnhandledExceptionNotification</media:title>
		</media:content>

		<media:content url="http://karlshifflett.files.wordpress.com/2009/06/glimpseunhandledexception_thumb.jpg" medium="image">
			<media:title type="html">GlimpseUnhandledException</media:title>
		</media:content>

		<media:content url="http://karlshifflett.files.wordpress.com/2009/06/glimpsedatabindingexception_thumb.png" medium="image">
			<media:title type="html">GlimpseDataBindingException</media:title>
		</media:content>

		<media:content url="http://karlshifflett.files.wordpress.com/2009/06/glimpsedatabindingexceptiondetial_thumb.png" medium="image">
			<media:title type="html">GlimpseDataBindingExceptionDetial</media:title>
		</media:content>

		<media:content url="http://karlshifflett.files.wordpress.com/2009/06/glimpsenobindingxaml_thumb.png" medium="image">
			<media:title type="html">GlimpseNoBindingXAML</media:title>
		</media:content>

		<media:content url="http://karlshifflett.files.wordpress.com/2009/06/glimpsenobindings_thumb.png" medium="image">
			<media:title type="html">GlimpseNoBindings</media:title>
		</media:content>
	</item>
		<item>
		<title>Troubleshooting Silverlight 3 Broken Bindings</title>
		<link>http://karlshifflett.wordpress.com/2009/06/03/troubleshooting-silverlight-3-broken-bindings/</link>
		<comments>http://karlshifflett.wordpress.com/2009/06/03/troubleshooting-silverlight-3-broken-bindings/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 14:59:51 +0000</pubDate>
		<dc:creator>Karl Shifflett</dc:creator>
				<category><![CDATA[Data Binding]]></category>
		<category><![CDATA[Exceptions]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[VB.NET]]></category>

		<guid isPermaLink="false">http://karlshifflett.wordpress.com/2009/06/03/troubleshooting-silverlight-3-broken-bindings/</guid>
		<description><![CDATA[This post has been replaced by a much better approach.
Please view Glimpse for Silverlight – Viewing Exceptions and Binding Errors
Have a great day,

Just a grain of sand on the worlds beaches.
Posted in Data Binding, Exceptions, Silverlight, VB.NET       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=963&subd=karlshifflett&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>This post has been replaced by a much better approach.</p>
<p>Please view <a title="Permanent Link: Glimpse for Silverlight &ndash; Viewing Exceptions and Binding&nbsp;Errors" href="http://karlshifflett.wordpress.com/2009/06/08/glimpse-for-silverlight-viewing-exceptions-and-binding-errors/" rel="bookmark">Glimpse for Silverlight – Viewing Exceptions and Binding Errors</a></p>
<p>Have a great day,</p>
</p>
<p><font color="#c0943f">Just a grain of sand on the worlds beaches.</font></p>
Posted in Data Binding, Exceptions, Silverlight, VB.NET  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlshifflett.wordpress.com/963/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlshifflett.wordpress.com/963/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlshifflett.wordpress.com/963/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlshifflett.wordpress.com/963/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlshifflett.wordpress.com/963/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlshifflett.wordpress.com/963/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlshifflett.wordpress.com/963/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlshifflett.wordpress.com/963/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlshifflett.wordpress.com/963/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlshifflett.wordpress.com/963/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=963&subd=karlshifflett&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlshifflett.wordpress.com/2009/06/03/troubleshooting-silverlight-3-broken-bindings/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a76246b869fbb589804c726df582ab60?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Karl Shifflett</media:title>
		</media:content>
	</item>
		<item>
		<title>New York City WPF LOB Tour Downloads (new material)</title>
		<link>http://karlshifflett.wordpress.com/2009/06/01/new-york-city-wpf-lob-tour-downloads-new-material/</link>
		<comments>http://karlshifflett.wordpress.com/2009/06/01/new-york-city-wpf-lob-tour-downloads-new-material/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 03:30:04 +0000</pubDate>
		<dc:creator>Karl Shifflett</dc:creator>
				<category><![CDATA[M-V-VM]]></category>
		<category><![CDATA[MVVM]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[VB.NET]]></category>
		<category><![CDATA[WPF General]]></category>

		<guid isPermaLink="false">http://karlshifflett.wordpress.com/2009/06/01/new-york-city-wpf-lob-tour-downloads-new-material/</guid>
		<description><![CDATA[Thank you New York City developers for spending two days with Jaime and myself.&#160; I really enjoyed being in the &#8220;City&#8221; again and meet you all.
We have posted the slide decks, lab walk through, sample MVVM applications and class code at the following two links. 
Slide Decks
Code and Demos

Note: The Code and Demos have been [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=953&subd=karlshifflett&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Thank you New York City developers for spending two days with Jaime and myself.&nbsp; I really enjoyed being in the &#8220;City&#8221; again and meet you all.</p>
<p>We have posted the slide decks, lab walk through, sample MVVM applications and class code at the following two links. </p>
<p><a href="http://www.cookingwithxaml.com/content/nylob/decks.zip" target="_blank">Slide Decks</a></p>
<p><a href="http://www.cookingwithxaml.com/content/nylob/demos.zip" target="_blank">Code and Demos</a></p>
<p>
<p><strong>Note</strong>: The Code and Demos have been updated with new content.&nbsp; Developers who attended a previous tour, may want to get the latest slides, code and demos.\</p>
<p>Looking forward to Phoenix and Chicago.</p>
<p>Have a great day,</p>
</p>
<p><font color="#c0943f">Just a grain of sand on the worlds beaches.</font></p>
Posted in M-V-VM, MVVM, Presentations, VB.NET, WPF General  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlshifflett.wordpress.com/953/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlshifflett.wordpress.com/953/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlshifflett.wordpress.com/953/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlshifflett.wordpress.com/953/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlshifflett.wordpress.com/953/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlshifflett.wordpress.com/953/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlshifflett.wordpress.com/953/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlshifflett.wordpress.com/953/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlshifflett.wordpress.com/953/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlshifflett.wordpress.com/953/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=953&subd=karlshifflett&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlshifflett.wordpress.com/2009/06/01/new-york-city-wpf-lob-tour-downloads-new-material/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a76246b869fbb589804c726df582ab60?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Karl Shifflett</media:title>
		</media:content>
	</item>
		<item>
		<title>Ocean for Silverlight &#8211; Enables Sharing Business Objects With WPF</title>
		<link>http://karlshifflett.wordpress.com/2009/06/01/ocean-for-silverlight-enables-sharing-business-objects-with-wpf/</link>
		<comments>http://karlshifflett.wordpress.com/2009/06/01/ocean-for-silverlight-enables-sharing-business-objects-with-wpf/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 15:48:02 +0000</pubDate>
		<dc:creator>Karl Shifflett</dc:creator>
				<category><![CDATA[Data Binding]]></category>
		<category><![CDATA[Ocean]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[VB.NET]]></category>
		<category><![CDATA[WPF General]]></category>

		<guid isPermaLink="false">http://karlshifflett.wordpress.com/2009/06/01/ocean-for-silverlight-enables-sharing-business-objects-with-wpf/</guid>
		<description><![CDATA[Ever since Silverlight version 1 was announced, I&#8217;ve been working with my WPF and .NET back-end libraries to ensure that I could reuse business entity objects between the tiers regardless of the UI technology.&#160; 
I wrote these demos in NYC while waiting for my flight home.&#160; This application takes advantage of the OceanFramework that runs [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=952&subd=karlshifflett&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Ever since Silverlight version 1 was announced, I&#8217;ve been working with my WPF and .NET back-end libraries to ensure that I could reuse business entity objects between the tiers regardless of the UI technology.&nbsp; </p>
<p>I wrote these demos in NYC while waiting for my flight home.&nbsp; This application takes advantage of the OceanFramework that runs in WPF, Silverlight and .NET 2.0 libraries.&nbsp; The two versions, WPF and Silverlight use the same exact files.&nbsp; I use Project Linker to to keep the two projects in sync.&nbsp; (FYI:&nbsp; The OceanFramework can also be used with Windows Forms applications.)</p>
<p>Using file linking in Visual Studio, I&#8217;m sharing the same exact business entity object file, Person.vb between WPF and Silverlight projects.</p>
<h4>Validation</h4>
<p>Before diving into the application I want to share some thoughts on validation.</p>
<p>Real world business applications use validation libraries to validate their business objects.&nbsp; Validation libraries contain rules and offer one or more techniques for calling their methods.&nbsp; Examples of validation libraries are the Microsoft Patterns and Practices Validation Application Block, Rocky Lhotka&#8217;s CSLA, my Ocean library and validation rules written by developers for their projects.&nbsp; </p>
<p>Well designed validation libraries are UI agnostic.</p>
<p>Validation libraries are used to validate business objects in the UI layer, Business Layer and Data Layers.</p>
<p>Follow this simple workflow:</p>
<ul>
<li>UI loads Person object
<li>User edits Person object
<li>User clicks the Save button
<li><u>Person is validated</u>
<li>If valid, Person passed to Business Layer
<li><em>Business Layer checks to ensure the object is valid, if not an exception is thrown</em>
<li>Business Layer performs computations on Person
<li><u>Person is validated again</u>
<li>If valid Person passed to Data Layer
<li><em>Data Layer checks to ensure the object is valid, if not an exception is thrown</em></li>
<li>Person passed to data base
<li>Database performs its own checking then writes the records</li>
</ul>
<p>From the very simple above example, we can see that validation needed to occur in two layers, UI and Business.</p>
<p>Also very important to note is that when the object was validated in the above example, the same rules were applied against the Person object in both layers.</p>
<p>The italic text steps are the sanity checks performed by each layer as it receives an object.&nbsp; I don&#8217;t allow invalid objects to cross a tier boundary.</p>
<p>Another example scenario is a business process that calculates bills for customers.&nbsp; In the case, there is no UI interaction during the process but you know that those objects involved are all validated before being sent to the data base.</p>
<h4>Surfacing Validation Errors</h4>
<ul>
<li>IDataErrorInfo
<li>Throwing exceptions in property setters</li>
</ul>
<p>The IDataErrorInfo interface provides a simple way for business objects to surface their validation errors to the UI.&nbsp; WPF and Windows Forms support this interface.</p>
<p>Throwing exceptions from property setters is another way for business objects to surface their validation errors to the UI.&nbsp; Silverlight and WPF support this method.</p>
<p>If you have not read my rant on throwing exceptions from property setters read <a href="http://karlshifflett.wordpress.com/2008/04/20/fort-knox-business-objects-yes-no/" target="_blank">Fort Knox Business Objects</a>.</p>
<p><strong>Important</strong>:&nbsp; When we develop business systems, we must take into consideration the fact that, &#8220;business objects must exist and interact with other objects in many different layers of an application.&#8221;&nbsp; This is one of the reasons I&#8217;m not in favor of throwing exceptions from property setters.&nbsp; Business layer and data layer code would be much harder to write if the object was throwing exceptions when properties are changed.&nbsp; It&#8217;s much easier to work with an object, then before the object is allowed to move from one tier to another, validate the object.&nbsp; If valid let it travel to the next tier.&nbsp; If not then either have the layer code attempt to correct it or throw an exception because something exceptional occurred..</p>
<h4></h4>
<h4>Silverlight 3 and Surfacing Validation Errors</h4>
<p>I love the new Silverlight 3 default validation states and the UI features when a control is invalid.&nbsp; Nice job Silverlight Controls Team!</p>
<p>I want to use IDataErrorInfo in Silverlight 3, however it currently does not support it.</p>
<p>So on Friday night in NYC, I stayed up and wrote a Silverlight TextBox that cleanly supports IDataErrorInfo.&nbsp; In fact I did a demo of it on Saturday in NYC.&nbsp; On Saturday night I did much more testing and found some edge cases where my implementation could have problems.&nbsp; I even took a stab at using an attached property and attached behavior too.&nbsp; Still always running into a nagging snag.</p>
<p>My solution to the problem was to give the Ocean Validation code the &#8220;option&#8221; throw an exception in the property setter when the business object is bound to the UI.&nbsp; When it&#8217;s not bound to the UI it will not throw an exception.</p>
<p>Using this technique, I can now use the same business objects across the tiers and still play nice with Silverlight 3 and take advantage of all the new Silverlight UI goodness.</p>
<h4>Sharing Business Objects</h4>
<p>If your validation library is small enough and can be compiled in Silverlight as well as WPF or .NET 2.0, you are ready to go.&nbsp; Currently Ocean for Silverlight weighs in at a very light 56KB.&nbsp; </p>
<p><a href="http://karlshifflett.files.wordpress.com/2009/06/linkedfiles.png"><img style="border-width:0;" height="324" alt="LinkedFiles" src="http://karlshifflett.files.wordpress.com/2009/06/linkedfiles_thumb.png?w=344&#038;h=324" width="344" border="0"></a> </p>
<p>The above image shows a Person file that is linked to a file in another project.</p>
<p><a href="http://karlshifflett.files.wordpress.com/2009/06/frameworks.png"><img style="border-width:0;" height="439" alt="Frameworks" src="http://karlshifflett.files.wordpress.com/2009/06/frameworks_thumb.png?w=356&#038;h=439" width="356" border="0"></a> </p>
<p>The above image shows the some of the referenced assemblies.&nbsp; Silverlight can only reference other Silverlight assemblies.&nbsp; I&#8217;ve solved the problem by keeping all the code in the OceanFramework and linking all files to the OceanFrameworkSilverlight project.</p>
<p>When the two business entity objects are compiled, they provide objects that can travel across the tiers while utilizing the same exact business object files and exhibiting the same logical behavior in all tiers.</p>
<p>The above MissingSilverlightInterfaces project contains the Sytem.ComponentModel.IDataErrorInfo interface since it&#8217;s not currently part of the Silverlight runtime.</p>
<h4>Silverlight Application</h4>
<p><a href="http://karlshifflett.files.wordpress.com/2009/06/silverlightvalidation.png"><img style="border-width:0;" height="414" alt="SilverlightValidation" src="http://karlshifflett.files.wordpress.com/2009/06/silverlightvalidation_thumb.png?w=720&#038;h=414" width="720" border="0"></a>&nbsp;</p>
<p>The above image shows the UI surfacing a validation error.&nbsp; Profession is a required field.&nbsp; Notice that the Save button is disabled.&nbsp; This is accomplished with a data binding to the business object&#8217;s base class.&nbsp; </p>
<p>When a person is selected the Person Details form will animate into position.</p>
<p>The below image shows the code for this validation rule.</p>
<p><a href="http://karlshifflett.files.wordpress.com/2009/06/professionproperty.png"><img style="border-width:0;" height="186" alt="ProfessionProperty" src="http://karlshifflett.files.wordpress.com/2009/06/professionproperty_thumb.png?w=568&#038;h=186" width="568" border="0"></a> </p>
<p>The above Ocean StringLengthValidator requires a string length at least 1 and no more that 30 characters.</p>
<p>The CharacterCasingFormatting attribute causes the business layer to case correct this field.&nbsp; This works in WPF and Silverlight.</p>
<p>I like applying rules this way because the code is very easy to read and generate.</p>
<p>Ocean provides many validation rules and case correcting rules.&nbsp; Rules can be applied using attributes or adding them in code.</p>
<h4>WPF Application</h4>
<p><a href="http://karlshifflett.files.wordpress.com/2009/06/wpfvalidation.png"><img style="border-width:0;" height="543" alt="WPFValidation" src="http://karlshifflett.files.wordpress.com/2009/06/wpfvalidation_thumb.png?w=639&#038;h=543" width="639" border="0"></a> </p>
<p>In the above image, Profession is empty but is a required field.&nbsp; The <font color="#ff0000">*</font> denotes an invalid field.&nbsp; Notice the button is disabled.&nbsp; Again, a simple data binding to the business objects base class.</p>
<p><a href="http://karlshifflett.files.wordpress.com/2009/06/wpfapplication.png"><img style="border-right:0;border-top:0;border-left:0;border-bottom:0;" height="407" alt="WPFApplication" src="http://karlshifflett.files.wordpress.com/2009/06/wpfapplication_thumb.png?w=720&#038;h=407" width="720" border="0"></a> </p>
<p>The above image shows the details form in a valid state.&nbsp; The button is enabled and the record can be saved.</p>
<p>I used this project in the WPF Line of Business Tour in the Layout session.&nbsp; I showed how to use a WrapPanel as the ItemsPanel in a ListBox.&nbsp; Then when the GridSplitter is used to give the ListBox more horizontal space, the WrapPanel kicks in.</p>
<h4>Download</h4>
<p>The download contains a single folder with the the 4 projects and an additional folder that contains the Ocean frameworks.&nbsp; I&#8217;ve only supplied the Ocean frameworks in .dll format for this demo.&nbsp; I&#8217;m in the process of updating the libraries and do not want anyone to have version problems.</p>
<p>Also I wanted to keep this application simple so that the &#8220;code sharing&#8221; would be the focus and readers not getting lost in a solution with too many projects.</p>
<p><strong>FYI</strong>:&nbsp; I&#8217;ll be posting another application soon that shows all the layers in action including the WCF projects that move the data back and forth.</p>
<p>For now, understanding that you &#8220;can easily&#8221; shared business objects and their validation rules across the tiers, is good news!</p>
<p>After downloading the code, change the file extension from .doc to .zip.&nbsp; This is a requirement of WordPress.com.</p>
<p><a href="http://karlshifflett.files.wordpress.com/2009/06/sharingentityobjectszip.doc" target="_blank">Sharing Entity Objects Download (158KB)</a></p>
<p>Have a great day,</p>
<p><font color="#c0943f">Just a grain of sand on the worlds beaches.</font></p>
Posted in Data Binding, Ocean, Silverlight, VB.NET, WPF General  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlshifflett.wordpress.com/952/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlshifflett.wordpress.com/952/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlshifflett.wordpress.com/952/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlshifflett.wordpress.com/952/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlshifflett.wordpress.com/952/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlshifflett.wordpress.com/952/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlshifflett.wordpress.com/952/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlshifflett.wordpress.com/952/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlshifflett.wordpress.com/952/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlshifflett.wordpress.com/952/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=952&subd=karlshifflett&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlshifflett.wordpress.com/2009/06/01/ocean-for-silverlight-enables-sharing-business-objects-with-wpf/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a76246b869fbb589804c726df582ab60?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Karl Shifflett</media:title>
		</media:content>

		<media:content url="http://karlshifflett.files.wordpress.com/2009/06/linkedfiles_thumb.png" medium="image">
			<media:title type="html">LinkedFiles</media:title>
		</media:content>

		<media:content url="http://karlshifflett.files.wordpress.com/2009/06/frameworks_thumb.png" medium="image">
			<media:title type="html">Frameworks</media:title>
		</media:content>

		<media:content url="http://karlshifflett.files.wordpress.com/2009/06/silverlightvalidation_thumb.png" medium="image">
			<media:title type="html">SilverlightValidation</media:title>
		</media:content>

		<media:content url="http://karlshifflett.files.wordpress.com/2009/06/professionproperty_thumb.png" medium="image">
			<media:title type="html">ProfessionProperty</media:title>
		</media:content>

		<media:content url="http://karlshifflett.files.wordpress.com/2009/06/wpfvalidation_thumb.png" medium="image">
			<media:title type="html">WPFValidation</media:title>
		</media:content>

		<media:content url="http://karlshifflett.files.wordpress.com/2009/06/wpfapplication_thumb.png" medium="image">
			<media:title type="html">WPFApplication</media:title>
		</media:content>
	</item>
		<item>
		<title>Visual Studio 2010 Beta1 &#8211; Unknown build error workaround</title>
		<link>http://karlshifflett.wordpress.com/2009/05/28/visual-studio-2010-beta1-unknown-build-error-workaround/</link>
		<comments>http://karlshifflett.wordpress.com/2009/05/28/visual-studio-2010-beta1-unknown-build-error-workaround/#comments</comments>
		<pubDate>Fri, 29 May 2009 02:21:53 +0000</pubDate>
		<dc:creator>Karl Shifflett</dc:creator>
				<category><![CDATA[Glitches]]></category>
		<category><![CDATA[VB.NET]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>
		<category><![CDATA[WPF General]]></category>

		<guid isPermaLink="false">http://karlshifflett.wordpress.com/2009/05/28/visual-studio-2010-beta1-unknown-build-error-workaround/</guid>
		<description><![CDATA[I&#8217;ve been working a good bit with the new Visual Studio 2010 Beta1 and really like the new designer features, .NET 4.0 features and VB language changes.
I have been getting the following error during project builds:
Error 1 Unknown build error, &#8216;Could not load file or assembly &#8216;file:///C:\Users\molenator\Documents\Visual Studio 10\Projects\MasterDetailDataSourcesWindowDemo\MasterDetailDataSourcesWindowDemo\obj\x86\Debug\MasterDetailDataSourcesWindowDemo.exe&#8217; or one of its dependencies. The [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=938&subd=karlshifflett&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;ve been working a good bit with the new Visual Studio 2010 Beta1 and really like the new designer features, .NET 4.0 features and VB language changes.</p>
<p>I have been getting the following error during project builds:</p>
<blockquote><p>Error 1<strong> Unknown build error</strong>, &#8216;Could not load file or assembly &#8216;file:///C:\Users\molenator\Documents\Visual Studio 10\Projects\MasterDetailDataSourcesWindowDemo\MasterDetailDataSourcesWindowDemo\obj\x86\Debug\MasterDetailDataSourcesWindowDemo.exe&#8217; or one of its dependencies.<strong> The process cannot access the file because it is being used by another process</strong>. (Exception from HRESULT: 0&#215;80070020)&#8217;&nbsp; MasterDetailDataSourcesWindowDemo</p>
</blockquote>
<p>When this happens <u>rebuild your solution</u>. (Build menu, select <u>Rebuild Solution</u>).&nbsp; Solution will rebuild successfully.</p>
<p>If you encounter problems like this, please report them on <a href="http:connect.microsoft.com" target="_blank">Microsoft Connect</a>. </p>
<p>Have a great day,</p>
<p><font color="#c0943f">Just a grain of sand on the worlds beaches.</font></p>
Posted in Glitches, VB.NET, Visual Studio 2010, WPF General  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlshifflett.wordpress.com/938/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlshifflett.wordpress.com/938/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlshifflett.wordpress.com/938/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlshifflett.wordpress.com/938/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlshifflett.wordpress.com/938/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlshifflett.wordpress.com/938/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlshifflett.wordpress.com/938/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlshifflett.wordpress.com/938/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlshifflett.wordpress.com/938/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlshifflett.wordpress.com/938/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=938&subd=karlshifflett&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlshifflett.wordpress.com/2009/05/28/visual-studio-2010-beta1-unknown-build-error-workaround/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a76246b869fbb589804c726df582ab60?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Karl Shifflett</media:title>
		</media:content>
	</item>
		<item>
		<title>WPF and Silverlight Designer for Visual Studio 2010 Home Page</title>
		<link>http://karlshifflett.wordpress.com/2009/05/27/wpf-and-silverlight-designer-for-visual-studio-2010-home-page/</link>
		<comments>http://karlshifflett.wordpress.com/2009/05/27/wpf-and-silverlight-designer-for-visual-studio-2010-home-page/#comments</comments>
		<pubDate>Thu, 28 May 2009 03:47:00 +0000</pubDate>
		<dc:creator>Karl Shifflett</dc:creator>
				<category><![CDATA[Cider Designer]]></category>
		<category><![CDATA[VB.NET]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>
		<category><![CDATA[WPF General]]></category>

		<guid isPermaLink="false">http://karlshifflett.wordpress.com/2009/05/27/wpf-and-silverlight-designer-for-visual-studio-2010-home-page/</guid>
		<description><![CDATA[I&#8217;m pleased to announce that the WPF and Silverlight Designer for Visual Studio 2010 has a new home page you can visit here.
The home page has links to articles and videos that help developers get the most from the designer.&#160; The home page can also be accessed from the WindowsClient.NET Learn page.
Developers new to WPF [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=937&subd=karlshifflett&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;m pleased to announce that the WPF and Silverlight Designer for Visual Studio 2010 has a new home page you can visit <a href="http://windowsclient.net/wpfdesigner/" target="_blank">here</a>.</p>
<p>The <a href="http://windowsclient.net/wpfdesigner/" target="_blank">home page</a> has links to articles and videos that help developers get the most from the designer.&nbsp; The home page can also be accessed from the <a href="http://windowsclient.net/learn/" target="_blank">WindowsClient.NET Learn page</a>.</p>
<p>Developers new to WPF or Silverlight can quickly get up to speed with the designer, learn it&#8217;s features, capabilities and some workflow tips when using the designer features.</p>
<p>For the XAML Heads out there, you&#8217;ll be pleasantly surprised with the new features and capabilities.</p>
<p>Additional content will continue to be rolled out on the site.&nbsp; The next article and video will be on WPF Layout Controls and using the designer features to layout forms.</p>
<p>Please leave comments on the new designer features and workflow either on this post or the articles or videos.&nbsp; My team at Microsoft is looking forward to comments from developers on the designer.</p>
<p>Have a great day,</p>
<p><font color="#c0943f">Just a grain of sand on the worlds beaches.</font></p>
Posted in Cider Designer, VB.NET, Visual Studio 2010, WPF General  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlshifflett.wordpress.com/937/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlshifflett.wordpress.com/937/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlshifflett.wordpress.com/937/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlshifflett.wordpress.com/937/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlshifflett.wordpress.com/937/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlshifflett.wordpress.com/937/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlshifflett.wordpress.com/937/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlshifflett.wordpress.com/937/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlshifflett.wordpress.com/937/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlshifflett.wordpress.com/937/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=937&subd=karlshifflett&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlshifflett.wordpress.com/2009/05/27/wpf-and-silverlight-designer-for-visual-studio-2010-home-page/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a76246b869fbb589804c726df582ab60?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Karl Shifflett</media:title>
		</media:content>
	</item>
		<item>
		<title>WPF 4.0 Data Binding Change (great feature)</title>
		<link>http://karlshifflett.wordpress.com/2009/05/27/wpf-4-0-data-binding-change-great-feature/</link>
		<comments>http://karlshifflett.wordpress.com/2009/05/27/wpf-4-0-data-binding-change-great-feature/#comments</comments>
		<pubDate>Wed, 27 May 2009 05:08:11 +0000</pubDate>
		<dc:creator>Karl Shifflett</dc:creator>
				<category><![CDATA[Data Binding]]></category>
		<category><![CDATA[VB.NET]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>
		<category><![CDATA[WPF General]]></category>

		<guid isPermaLink="false">http://karlshifflett.wordpress.com/2009/05/27/wpf-4-0-data-binding-change-great-feature/</guid>
		<description><![CDATA[WPF 4.0 has a great change to the data binding pipeline that me and others have been patiently waiting for.&#160; Many thanks to the WPF Team for implementing this feature.
Properties are now automatically reread from the binding source after the UI controls set the property value.&#160; 
This feature enables the business entity objects to modify [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=936&subd=karlshifflett&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>WPF 4.0 has a great change to the data binding pipeline that me and others have been patiently waiting for.&nbsp; Many thanks to the WPF Team for implementing this feature.</p>
<p>Properties are now automatically reread from the binding source after the UI controls set the property value.&nbsp; </p>
<p>This feature enables the business entity objects to modify the value coming from the UI and have that value automatically reflected back to the UI.</p>
<h4>Example</h4>
<p>A classic example of this feature in action would be a state field.&nbsp; </p>
<ul>
<li>User enters <strong>wa</strong> in a TextBox
<li>State property on the business object is updated to <strong>wa</strong>
<li>Business rules change the case of the entered value to upper case setting the value to <strong>WA</strong>
<li>Data binding pipeline now automatically rereads the State property value and sets the TextBox.Text to <strong>WA</strong></li>
</ul>
<p>Before this great feature, developers could implement a workaround by adding a no-op converter to each TextBox binding.</p>
<p>You can read about the issue that still exists in .NET 3.0 and .NET 3.5 projects <a href="http://social.msdn.microsoft.com/forums/en-US/wpf/thread/6f78d75f-9769-4ff9-a76f-c2af0040d9b0/" target="_blank">here</a>.</p>
<p>This feature is not dependent on the business object implementing the INotifyPropertyChanged interface.</p>
<h4>Simple Business Object Code </h4>
<div class="code">
<pre><span style="color:blue;">Public Property </span>State <span style="color:blue;">As String
    Get
        Return </span>_strState
    <span style="color:blue;">End Get
    Set</span>(<span style="color:blue;">ByVal </span>value <span style="color:blue;">As String</span>)
        _strState = value
        <span style="color:blue;">If Not String</span>.IsNullOrEmpty(_strState) <span style="color:blue;">Then
            </span>_strState = _strState.ToUpper
        <span style="color:blue;">End If
        </span>OnPropertyChanged(<span style="color:#a31515;">"State"</span>)
    <span style="color:blue;">End Set
End Property</span></pre>
</div>
<h4>State Field Runtime Behavior Demonstrated</h4>
<p>&nbsp;<a href="http://karlshifflett.files.wordpress.com/2009/05/statebeforeandafter.png"><img style="border-bottom:0;border-left:0;border-top:0;border-right:0;" border="0" alt="StateBeforeandAfter" src="http://karlshifflett.files.wordpress.com/2009/05/statebeforeandafter_thumb.png?w=324&#038;h=348" width="324" height="348"></a> </p>
<h4>Email Field Runtime Behavior Demonstrated</h4>
<p>The Email property business rules will change the TextBox value to lower case.</p>
<p><a href="http://karlshifflett.files.wordpress.com/2009/05/emailbeforeandafter.png"><img style="border-bottom:0;border-left:0;border-top:0;border-right:0;" border="0" alt="EmailBeforeandAfter" src="http://karlshifflett.files.wordpress.com/2009/05/emailbeforeandafter_thumb.png?w=314&#038;h=334" width="314" height="334"></a> </p>
<h4></h4>
<h4>Download &#8211; Requires Visual Studio 2010 Beta1 or later</h4>
<p>After downloading the project, please change the extension from .doc to .zip.&nbsp; This is a requirement of WordPress.com.</p>
<p><a href="http://karlshifflett.files.wordpress.com/2009/05/wpf4databindingchangeszip.doc" target="_blank">Sample Application (80KB)</a></p>
<p>Have a great day,</p>
<p><font color="#c0943f">Just a grain of sand on the worlds beaches.</font></p>
Posted in Data Binding, VB.NET, Visual Studio 2010, WPF General  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlshifflett.wordpress.com/936/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlshifflett.wordpress.com/936/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlshifflett.wordpress.com/936/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlshifflett.wordpress.com/936/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlshifflett.wordpress.com/936/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlshifflett.wordpress.com/936/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlshifflett.wordpress.com/936/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlshifflett.wordpress.com/936/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlshifflett.wordpress.com/936/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlshifflett.wordpress.com/936/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=936&subd=karlshifflett&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlshifflett.wordpress.com/2009/05/27/wpf-4-0-data-binding-change-great-feature/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a76246b869fbb589804c726df582ab60?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Karl Shifflett</media:title>
		</media:content>

		<media:content url="http://karlshifflett.files.wordpress.com/2009/05/statebeforeandafter_thumb.png" medium="image">
			<media:title type="html">StateBeforeandAfter</media:title>
		</media:content>

		<media:content url="http://karlshifflett.files.wordpress.com/2009/05/emailbeforeandafter_thumb.png" medium="image">
			<media:title type="html">EmailBeforeandAfter</media:title>
		</media:content>
	</item>
		<item>
		<title>Getting to know ClickOnce Deployment</title>
		<link>http://karlshifflett.wordpress.com/2009/05/22/getting-to-know-clickonce-deployment/</link>
		<comments>http://karlshifflett.wordpress.com/2009/05/22/getting-to-know-clickonce-deployment/#comments</comments>
		<pubDate>Fri, 22 May 2009 14:11:02 +0000</pubDate>
		<dc:creator>Karl Shifflett</dc:creator>
				<category><![CDATA[ClickOnce]]></category>
		<category><![CDATA[VB.NET]]></category>
		<category><![CDATA[WPF General]]></category>

		<guid isPermaLink="false">http://karlshifflett.wordpress.com/2009/05/22/getting-to-know-clickonce-deployment/</guid>
		<description><![CDATA[While in Los Angeles several attendees of the &#8220;WPF for Line of Business Tour&#8221; asked about ClickOnce as a deployment strategy for their Intranet WPF applications.
I met with the ClickOnce runtime team a few days ago and got these below resources for ClickOnce.
Recommended Book
Smart Client Deployment with ClickOnce by Brian Noyes
Available Books
The below books have [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=929&subd=karlshifflett&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>While in Los Angeles several attendees of the &#8220;WPF for Line of Business Tour&#8221; asked about ClickOnce as a deployment strategy for their Intranet WPF applications.</p>
<p>I met with the ClickOnce runtime team a few days ago and got these below resources for ClickOnce.</p>
<h4>Recommended Book</h4>
<p><a href="http://www.amazon.com/Smart-Client-Deployment-ClickOnce-Applications/dp/0321197690/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1243000276&amp;sr=1-1" target="_blank">Smart Client Deployment with ClickOnce</a> by Brian Noyes</p>
<h4>Available Books</h4>
<p>The below books have not been specifically reviewed, but do provide varying details on ClickOnce and may be valuable to you.</p>
<p><a href="http://www.windowsdevcenter.com/pub/a/windows/2006/04/06/using-clickonce.html" target="_blank">Use ClickOnce to Deploy Windows Applications</a> (O&#8217;Reilly)</p>
<p><a href="http://www.amazon.com/Deploying-NET-Applications-Learning-ClickOnce/dp/1590596528/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1243000859&amp;sr=1-1" target="_blank">Deploying .Net Applications with MSBUILD and ClickOnce</a> (Apress)</p>
<p><a href="http://www.springerlink.com/content/h505hg8182667013/" target="_blank">Pro WPF</a> (Apress)</p>
<h4>Good links for getting ramped up on ClickOnce</h4>
<p><a href="http://msdn.microsoft.com/en-us/library/wh45kb66.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/wh45kb66.aspx</a><br /><a href="http://msdn.microsoft.com/en-us/library/t71a733d%28VS.80%29.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/t71a733d%28VS.80%29.aspx</a> <br /><a href="http://en.wikipedia.org/wiki/ClickOnce" target="_blank">http://en.wikipedia.org/wiki/ClickOnce</a><br /><a href="http://www.installsite.org/pages/en/clickonce.htm" target="_blank">http://www.installsite.org/pages/en/clickonce.htm</a> (some links broken / out of date).<br /><a href="http://www.softinsight.com/bnoyes/CategoryView,category,ClickOnce.aspx" target="_blank">http://www.softinsight.com/bnoyes/CategoryView,category,ClickOnce.aspx</a> <br /><a href="http://blogs.msdn.com/pstubbs/archive/2007/05/17/vsto-my-favorite-feature-clickonce-deployment.aspx" target="_blank">http://blogs.msdn.com/pstubbs/archive/2007/05/17/vsto-my-favorite-feature-clickonce-deployment.aspx</a> <br /><a href="http://msdn.microsoft.com/en-us/magazine/cc188708.aspx" target="_blank">http://msdn.microsoft.com/en-us/magazine/cc188708.aspx</a> <br /><a href="http://blogs.msdn.com/mwade/archive/2008/08/29/what-s-new-in-visuall-studio-2008-sp1-clickonce-tooling.aspx" target="_blank">http://blogs.msdn.com/mwade/archive/2008/08/29/what-s-new-in-visuall-studio-2008-sp1-clickonce-tooling.aspx</a> <br /><a href="https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=60593" target="_blank">https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=60593</a> </p>
<p>Third Party Tool</p>
<p>The following third party tool provides additional features that may be of value to you.</p>
<p><a href="http://www.clickoncemore.net/home/main.php" target="_blank">ClickOnceMore</a>&nbsp;</p>
<p>Have a great day,</p>
<p><font color="#c0943f">Just a grain of sand on the worlds beaches.</font></p>
Posted in ClickOnce, VB.NET, WPF General  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlshifflett.wordpress.com/929/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlshifflett.wordpress.com/929/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlshifflett.wordpress.com/929/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlshifflett.wordpress.com/929/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlshifflett.wordpress.com/929/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlshifflett.wordpress.com/929/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlshifflett.wordpress.com/929/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlshifflett.wordpress.com/929/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlshifflett.wordpress.com/929/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlshifflett.wordpress.com/929/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=929&subd=karlshifflett&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlshifflett.wordpress.com/2009/05/22/getting-to-know-clickonce-deployment/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a76246b869fbb589804c726df582ab60?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Karl Shifflett</media:title>
		</media:content>
	</item>
		<item>
		<title>Thank You London, UK and European Developers</title>
		<link>http://karlshifflett.wordpress.com/2009/05/20/thank-you-london-uk-and-european-developers/</link>
		<comments>http://karlshifflett.wordpress.com/2009/05/20/thank-you-london-uk-and-european-developers/#comments</comments>
		<pubDate>Wed, 20 May 2009 12:57:12 +0000</pubDate>
		<dc:creator>Karl Shifflett</dc:creator>
				<category><![CDATA[M-V-VM]]></category>
		<category><![CDATA[MVVM]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[VB.NET]]></category>
		<category><![CDATA[WPF General]]></category>

		<guid isPermaLink="false">http://karlshifflett.wordpress.com/2009/05/20/thank-you-london-uk-and-european-developers/</guid>
		<description><![CDATA[Jaime Rodriguez and I just returned from London, the second stop for the WPF for Line of Business Tour.
I feel privileged to have spent two days with a fantastic group of professional developers from London, surrounding UK areas and Europe.&#160; Thank you all for your active participation and hospitality.&#160; I wish each of you great [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=928&subd=karlshifflett&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Jaime Rodriguez and I just returned from London, the second stop for the WPF for Line of Business Tour.</p>
<p>I feel privileged to have spent two days with a fantastic group of professional developers from London, surrounding UK areas and Europe.&nbsp; Thank you all for your active participation and hospitality.&nbsp; I wish each of you great success in your development careers.</p>
<h4>Download Links</h4>
<p><a href="http://www.cookingwithxaml.com/content/londonLOB/decks.zip" target="_blank">Presentation Decks</a></p>
<p><font face="Tahoma" size="2"><a href="http://www.cookingwithxaml.com/content/londonLOB/demos.zip" target="_blank">Source Code, Example Projects and Introduction MVVM Lab</a></font></p>
<p>Jaime has also posted a thank you with the downloads <a href="http://blogs.msdn.com/jaimer/archive/2009/05/20/thank-you-london-here-is-the-content.aspx" target="_blank">here</a>.</p>
<p>Have a great day,</p>
<p><font color="#c0943f">Just a grain of sand on the worlds beaches.</font></p>
Posted in M-V-VM, MVVM, Presentations, VB.NET, WPF General  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlshifflett.wordpress.com/928/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlshifflett.wordpress.com/928/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlshifflett.wordpress.com/928/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlshifflett.wordpress.com/928/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlshifflett.wordpress.com/928/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlshifflett.wordpress.com/928/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlshifflett.wordpress.com/928/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlshifflett.wordpress.com/928/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlshifflett.wordpress.com/928/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlshifflett.wordpress.com/928/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=928&subd=karlshifflett&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlshifflett.wordpress.com/2009/05/20/thank-you-london-uk-and-european-developers/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a76246b869fbb589804c726df582ab60?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Karl Shifflett</media:title>
		</media:content>
	</item>
		<item>
		<title>Los Angeles WPF LOB Tour Downloads</title>
		<link>http://karlshifflett.wordpress.com/2009/04/29/los-angeles-wpf-lob-tour-downloads/</link>
		<comments>http://karlshifflett.wordpress.com/2009/04/29/los-angeles-wpf-lob-tour-downloads/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 13:08:52 +0000</pubDate>
		<dc:creator>Karl Shifflett</dc:creator>
				<category><![CDATA[Demonstrations]]></category>
		<category><![CDATA[M-V-VM]]></category>
		<category><![CDATA[MVVM]]></category>
		<category><![CDATA[Samples]]></category>
		<category><![CDATA[VB.NET]]></category>
		<category><![CDATA[WPF General]]></category>

		<guid isPermaLink="false">http://karlshifflett.wordpress.com/2009/04/29/los-angeles-wpf-lob-tour-downloads/</guid>
		<description><![CDATA[We have posted the slide decks, lab walk through, sample MVVM applications and class code at the following two links. 
&#160;Slide Decks
Code and Demos
Jaime also did a nice blog post here, thanking all attendees!
Have a great day,
Just a grain of sand on the worlds beaches.
Posted in Demonstrations, M-V-VM, MVVM, Samples, VB.NET, WPF General   [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=926&subd=karlshifflett&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>We have posted the slide decks, lab walk through, sample MVVM applications and class code at the following two links. </p>
<p>&nbsp;<a href="http://www.cookingwithxaml.com/content/LALOB/decks.zip" target="_blank">Slide Decks</a></p>
<p><a href="http://www.cookingwithxaml.com/content/LALOB/demos.zip" target="_blank">Code and Demos</a></p>
<p>Jaime also did a nice blog post <a href="http://blogs.msdn.com/jaimer/archive/2009/04/29/thank-you-la-here-is-the-content.aspx" target="_blank">here</a>, thanking all attendees!</p>
<p>Have a great day,</p>
<p><font color="#c0943f">Just a grain of sand on the worlds beaches.</font></p>
Posted in Demonstrations, M-V-VM, MVVM, Samples, VB.NET, WPF General  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlshifflett.wordpress.com/926/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlshifflett.wordpress.com/926/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlshifflett.wordpress.com/926/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlshifflett.wordpress.com/926/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlshifflett.wordpress.com/926/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlshifflett.wordpress.com/926/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlshifflett.wordpress.com/926/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlshifflett.wordpress.com/926/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlshifflett.wordpress.com/926/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlshifflett.wordpress.com/926/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=926&subd=karlshifflett&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlshifflett.wordpress.com/2009/04/29/los-angeles-wpf-lob-tour-downloads/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a76246b869fbb589804c726df582ab60?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Karl Shifflett</media:title>
		</media:content>
	</item>
		<item>
		<title>Los Angeles was super, now I hear &quot;London Calling&quot;</title>
		<link>http://karlshifflett.wordpress.com/2009/04/26/los-angeles-was-super-now-i-here-london-calling/</link>
		<comments>http://karlshifflett.wordpress.com/2009/04/26/los-angeles-was-super-now-i-here-london-calling/#comments</comments>
		<pubDate>Sun, 26 Apr 2009 15:40:30 +0000</pubDate>
		<dc:creator>Karl Shifflett</dc:creator>
				<category><![CDATA[Commands]]></category>
		<category><![CDATA[Data Binding]]></category>
		<category><![CDATA[Demonstrations]]></category>
		<category><![CDATA[M-V-VM]]></category>
		<category><![CDATA[MVVM]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[VB.NET]]></category>
		<category><![CDATA[WPF General]]></category>

		<guid isPermaLink="false">http://karlshifflett.wordpress.com/2009/04/26/los-angeles-was-super-now-i-here-london-calling/</guid>
		<description><![CDATA[Los Angeles
Got home late last night after the WPF for LOB training in Los Angeles.&#160; Jaime and I had a fantastic two days with Southern California developers and I want to thank each person who attended the event.&#160; During the event, had many questions and exchanging of ideas.&#160; Thanks again for your energy and participation.
Jaime [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=924&subd=karlshifflett&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><strong>Los Angeles</strong></p>
<p>Got home late last night after the WPF for LOB training in Los Angeles.&nbsp; Jaime and I had a fantastic two days with Southern California developers and I want to thank each person who attended the event.&nbsp; During the event, had many questions and exchanging of ideas.&nbsp; Thanks again for your energy and participation.</p>
<p>Jaime and I will upload all the materials by end of day Tuesday, April 26.&nbsp; I&#8217;ll post a link Tuesday evening here on my blog and Jaime will do the same.</p>
<p><strong>London 15-16 May</strong></p>
<p>The next stop for the WPF for LOB Training Tour is London.&nbsp; If you have not registered you can do so <a href="http://www.msregistration.com/content/eventselection.asp?eventid=21373&amp;CcpSubsiteID=85&amp;vdid=440" target="_blank">here.</a></p>
<blockquote><p>Radisson Edwardian Heathrow Hotel <br />140 Bath Road <br />Hayes Middlesex <br />London</p>
</blockquote>
<p>London is very special to me.&nbsp; When I lived in New Jersey I tried to get to London every year.&nbsp; I have a super friend who has lived on the East End for the last 20 years.&nbsp; Loved the people I spent time with there.</p>
<p>This trip allows me to meet WPF Disciples, Microsoft MVP&#8217;s and Code Project MVP&#8217;s and members that I have been exchanging messages with for years and never got to meet in person.</p>
<p>Looking forward to making many new friends and spending time with the UK&#8217;s finest.</p>
<h4>Complete Information</h4>
<p><a href="http://blogs.msdn.com/jaimer/archive/2009/04/01/announcing-the-using-wpf-to-build-lob-applications-training-tour.aspx"><font color="#b85b5a">http://blogs.msdn.com/jaimer/archive/2009/04/01/announcing-the-using-wpf-to-build-lob-applications-training-tour.aspx</font></a></p>
<p>So looking forward to meeting great developers from the UK.</p>
<p>Have a great day,</p>
<p><font color="#c0943f">Just a grain of sand on the worlds beaches.</font></p>
Posted in Commands, Data Binding, Demonstrations, M-V-VM, Microsoft, MVVM, Presentations, VB.NET, WPF General  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlshifflett.wordpress.com/924/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlshifflett.wordpress.com/924/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlshifflett.wordpress.com/924/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlshifflett.wordpress.com/924/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlshifflett.wordpress.com/924/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlshifflett.wordpress.com/924/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlshifflett.wordpress.com/924/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlshifflett.wordpress.com/924/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlshifflett.wordpress.com/924/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlshifflett.wordpress.com/924/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=924&subd=karlshifflett&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlshifflett.wordpress.com/2009/04/26/los-angeles-was-super-now-i-here-london-calling/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a76246b869fbb589804c726df582ab60?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Karl Shifflett</media:title>
		</media:content>
	</item>
		<item>
		<title>Los Angeles WPF Line of Business Training 24-25 April</title>
		<link>http://karlshifflett.wordpress.com/2009/04/09/los-angeles-wpf-line-of-business-training-24-25-april/</link>
		<comments>http://karlshifflett.wordpress.com/2009/04/09/los-angeles-wpf-line-of-business-training-24-25-april/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 12:45:31 +0000</pubDate>
		<dc:creator>Karl Shifflett</dc:creator>
				<category><![CDATA[M-V-VM]]></category>
		<category><![CDATA[MVVM]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[WPF General]]></category>

		<guid isPermaLink="false">http://karlshifflett.wordpress.com/2009/04/09/los-angeles-wpf-line-of-business-training-24-25-april/</guid>
		<description><![CDATA[In just two short weeks, Jaime Rodriguez and I will be conducting the free 2 day training event in Los Angeles, CA at the Crowne Plaza Hotel LAX.
You can register for the event here:&#160; WPF LOB Los Angeles
Registration Tip:&#160; If you are not a partner or don&#8217;t know if you are when asked &#8220;are you [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=923&subd=karlshifflett&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>In just two short weeks, Jaime Rodriguez and I will be conducting the free 2 day training event in Los Angeles, CA at the Crowne Plaza Hotel LAX.</p>
<p>You can register for the event here:&nbsp; <a href="http://www.msregistration.com/content/eventselection.asp?eventid=21397&amp;CcpSubsiteID=85&amp;vdid=441">WPF LOB Los Angeles</a></p>
<p><strong>Registration Tip</strong>:&nbsp; If you are not a partner or don&#8217;t know if you are when asked &#8220;are you registered&#8221; select No.&nbsp;&nbsp; Select &#8220;Visiting partner&#8221; under Partner Level.&nbsp; Get creative on the Partner Type if in doubt, we are all System builders.</p>
<p>This training is designed for those that have never seen WPF or are new to WPF.&nbsp; If you are currently working with Windows Forms, this training is for you!</p>
<p>For those who have been working with WPF and want to get up to speed on M-V-VM this training is for you too!</p>
<h4>Schedule </h4>
<ul>
<li>Day One:
<ul>
<li>Lap Around WPF
<li>WPF Tools (Blend, Visual Studio 2008)
<li>Graphics Subsystem
<li>Layout
<li>WPF Fundamentals and new concepts
<ul>
<li>Application Model
<li>Dependency Properties
<li>Trees (logical &amp; visual)
<li>Events
<li>Threading
<li>Resources</li>
</ul>
<li>Controls
<li>Styling
<li>Templating
<li>Q&amp;A with instructors at end of day </li>
</ul>
<li>Day Two:
<ul>
<li>WPF integration with Win32 and Windows Forms
<li>Data binding
<li>Introduction to Model-View-ViewModel
<li>Commanding in M-V-VM
<li>Views, Navigation and Transitions
<li>Data Validation
<li>Error handling, Model dialogs, Logging
<li>Unit Testing
<li>MVVM &amp; LOB tips and tricks
<li>Q&amp;A with the instructors </li>
</ul>
</li>
</ul>
<h4>Complete Information</h4>
<p><a href="http://blogs.msdn.com/jaimer/archive/2009/04/01/announcing-the-using-wpf-to-build-lob-applications-training-tour.aspx">http://blogs.msdn.com/jaimer/archive/2009/04/01/announcing-the-using-wpf-to-build-lob-applications-training-tour.aspx</a></p>
<p>Looking forward to meeting great developers from the Los Angeles area.</p>
<p>Have a great day,</p>
<p><font color="#c0943f">Just a grain of sand on the worlds beaches.</font></p>
Posted in M-V-VM, MVVM, Presentations, WPF General  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlshifflett.wordpress.com/923/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlshifflett.wordpress.com/923/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlshifflett.wordpress.com/923/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlshifflett.wordpress.com/923/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlshifflett.wordpress.com/923/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlshifflett.wordpress.com/923/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlshifflett.wordpress.com/923/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlshifflett.wordpress.com/923/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlshifflett.wordpress.com/923/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlshifflett.wordpress.com/923/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=923&subd=karlshifflett&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlshifflett.wordpress.com/2009/04/09/los-angeles-wpf-line-of-business-training-24-25-april/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a76246b869fbb589804c726df582ab60?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Karl Shifflett</media:title>
		</media:content>
	</item>
		<item>
		<title>Announcing the &quot;WPF for LOB&quot; Training Tour</title>
		<link>http://karlshifflett.wordpress.com/2009/04/02/announcing-the-wpf-for-lob-training-tour/</link>
		<comments>http://karlshifflett.wordpress.com/2009/04/02/announcing-the-wpf-for-lob-training-tour/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 13:33:33 +0000</pubDate>
		<dc:creator>Karl Shifflett</dc:creator>
				<category><![CDATA[M-V-VM]]></category>
		<category><![CDATA[MVVM]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[WPF Business Application Series]]></category>
		<category><![CDATA[WPF General]]></category>

		<guid isPermaLink="false">http://karlshifflett.wordpress.com/2009/04/02/announcing-the-wpf-for-lob-training-tour/</guid>
		<description><![CDATA[After our initial M-V-VM training sold out, I am delighted to announce our new series of WPF training for April/May/June.
Jaime Rodriguez and I created our best offering to-date: two days packed with WPF, optimized for building business applications, and in these locations:&#160; Los Angeles, CA &#8211; London, UK &#8211; New York, NY &#8211; Chicago, IL [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=922&subd=karlshifflett&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>After our initial <a href="http://karlshifflett.wordpress.com/2009/01/08/training-day-creating-wpf-line-of-business-applications-m-v-vm-using-c-and-vbnet/">M-V-VM training sold out</a>, I am delighted to announce our new series of WPF training for April/May/June.</p>
<p><a href="http://blogs.msdn.com/jaimer" target="_blank">Jaime Rodriguez</a> and I created our best offering to-date: two days packed with WPF, optimized for building business applications, and in these locations:&nbsp; Los Angeles, CA &#8211; London, UK &#8211; New York, NY &#8211; Chicago, IL &#8211; Phoenix, AZ</p>
<p>Please join us, and <em>please help us spread the word about the free training!! </em></p>
<h4>Invitation and Complete Information</h4>
<p><a href="http://blogs.msdn.com/jaimer/archive/2009/04/01/announcing-the-using-wpf-to-build-lob-applications-training-tour.aspx">Training Event Information and Registration</a></p>
<p>Have a great day,</p>
<p><font color="#c0943f">Just a grain of sand on the worlds beaches.</font></p>
Posted in M-V-VM, Microsoft, MVVM, Presentations, WPF Business Application Series, WPF General  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlshifflett.wordpress.com/922/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlshifflett.wordpress.com/922/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlshifflett.wordpress.com/922/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlshifflett.wordpress.com/922/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlshifflett.wordpress.com/922/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlshifflett.wordpress.com/922/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlshifflett.wordpress.com/922/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlshifflett.wordpress.com/922/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlshifflett.wordpress.com/922/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlshifflett.wordpress.com/922/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlshifflett.wordpress.com&blog=1204518&post=922&subd=karlshifflett&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlshifflett.wordpress.com/2009/04/02/announcing-the-wpf-for-lob-training-tour/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a76246b869fbb589804c726df582ab60?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Karl Shifflett</media:title>
		</media:content>
	</item>
	</channel>
</rss>