<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Visual Studio Data : Generic Object</title><link>http://blogs.msdn.com/vsdata/archive/tags/Generic+Object/default.aspx</link><description>Tags: Generic Object</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>WPF Data Binding: Bind a generic object on a WPF designer</title><link>http://blogs.msdn.com/vsdata/archive/2009/06/01/wpf-data-binding-bind-a-generic-object-on-a-wpf-designer.aspx</link><pubDate>Mon, 01 Jun 2009 22:05:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9674228</guid><dc:creator>Jeff Chen</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/vsdata/comments/9674228.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vsdata/commentrss.aspx?PostID=9674228</wfw:commentRss><wfw:comment>http://blogs.msdn.com/vsdata/rsscomments.aspx?PostID=9674228</wfw:comment><description>&lt;P&gt;In Visual Studio 2010 Beta1, we have enabled data binding experience for a few data sources on WPF designer. Generic object or business object is one of them. Besides this, we have also supported multiple object selection in data source configuration wizard. I will show you all of the above features by walking through one example. In this example, I want to create a master-details form on a WPF designer by binding to the generic objects.&lt;/P&gt;
&lt;P&gt;First, let’s create two classes called Customer and Order. And we establish one-to-many relationship between Customer and Order. This step is pretty similar to what needs to be done on a Winform designer.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vsdata/WindowsLiveWriter/WPFDataBindingBindagenericobjectonaWPFde_C1D4/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/vsdata/WindowsLiveWriter/WPFDataBindingBindagenericobjectonaWPFde_C1D4/image_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/vsdata/WindowsLiveWriter/WPFDataBindingBindagenericobjectonaWPFde_C1D4/image_thumb.png" width=320 height=221 mce_src="http://blogs.msdn.com/blogfiles/vsdata/WindowsLiveWriter/WPFDataBindingBindagenericobjectonaWPFde_C1D4/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Second, let’s add these two generic objects to data sources window. As I mentioned above, we now support selecting multiple objects in data source configuration wizard simultaneously.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vsdata/WindowsLiveWriter/WPFDataBindingBindagenericobjectonaWPFde_C1D4/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/vsdata/WindowsLiveWriter/WPFDataBindingBindagenericobjectonaWPFde_C1D4/image_4.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/vsdata/WindowsLiveWriter/WPFDataBindingBindagenericobjectonaWPFde_C1D4/image_thumb_1.png" width=323 height=252 mce_src="http://blogs.msdn.com/blogfiles/vsdata/WindowsLiveWriter/WPFDataBindingBindagenericobjectonaWPFde_C1D4/image_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;After the addition, this is what displays in data sources window.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vsdata/WindowsLiveWriter/WPFDataBindingBindagenericobjectonaWPFde_C1D4/image_6.png" mce_href="http://blogs.msdn.com/blogfiles/vsdata/WindowsLiveWriter/WPFDataBindingBindagenericobjectonaWPFde_C1D4/image_6.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/vsdata/WindowsLiveWriter/WPFDataBindingBindagenericobjectonaWPFde_C1D4/image_thumb_2.png" width=121 height=261 mce_src="http://blogs.msdn.com/blogfiles/vsdata/WindowsLiveWriter/WPFDataBindingBindagenericobjectonaWPFde_C1D4/image_thumb_2.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Third, let’s drag-drop from data sources window to the WPF designer to create a master-details form. We can bind any system or user controls to a particular data node. Here are the helps on &lt;A href="http://msdn.microsoft.com/en-us/library/dd264902(VS.100).aspx" mce_href="http://msdn.microsoft.com/en-us/library/dd264902(VS.100).aspx"&gt;“Customize Control Binding Dialog Box”&lt;/A&gt; and &lt;A href="http://msdn.microsoft.com/en-us/library/5554bf3a(VS.100).aspx" mce_href="http://msdn.microsoft.com/en-us/library/5554bf3a(VS.100).aspx"&gt;“How to: Add Custom Controls to the Data Sources Window”&lt;/A&gt;. In this example, I bind ListBox to the node Customer.LastName and DataGrid to the node Customer.Orders in the data sources window, and drag-drop these nodes to the WPF designer respectively.&lt;/P&gt;
&lt;P&gt;Last, we need to fill the data to the form. In the third step, when we drag-drop the data nodes to the form, XAML code was automatically generated. That XMAL code is very similar to the one if we bind data to ADO.NET Entity Data Model. You can find detailed explanation about XAML code part in MilindLele’s post &lt;A href="http://blogs.msdn.com/vsdata/archive/2009/05/20/wpf-data-binding-creating-a-master-details-form-in-visual-studio-2010.aspx" mce_href="http://blogs.msdn.com/vsdata/archive/2009/05/20/wpf-data-binding-creating-a-master-details-form-in-visual-studio-2010.aspx"&gt;“WPF Data Binding: Creating a Master-Details form in Visual Studio 2010”&lt;/A&gt;. For the code behind the form, we set the data to the source property of the CollectionViewSource of the Customer object in the window loaded event handler.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;PRE class=csharpcode&gt;List&amp;lt;Customer&amp;gt; customers = &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; List&amp;lt;Customer&amp;gt;(); 
customers.Add(...);

System.Windows.Data.CollectionViewSource customerViewSource = 
  ((System.Windows.Data.CollectionViewSource)(&lt;SPAN class=kwrd&gt;this&lt;/SPAN&gt;.FindResource(&lt;SPAN class=str&gt;"customerViewSource"&lt;/SPAN&gt;))); 
customerViewSource.Source = customers;&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Now press F5, we should be able to see the form loaded with the data.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/vsdata/WindowsLiveWriter/WPFDataBindingBindagenericobjectonaWPFde_C1D4/image_8.png" mce_href="http://blogs.msdn.com/blogfiles/vsdata/WindowsLiveWriter/WPFDataBindingBindagenericobjectonaWPFde_C1D4/image_8.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/vsdata/WindowsLiveWriter/WPFDataBindingBindagenericobjectonaWPFde_C1D4/image_thumb_3.png" width=320 height=202 mce_src="http://blogs.msdn.com/blogfiles/vsdata/WindowsLiveWriter/WPFDataBindingBindagenericobjectonaWPFde_C1D4/image_thumb_3.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;As the master-details association is already created in XAML, different sets of orders will be displayed according to the selection of customer names.&lt;/P&gt;
&lt;DIV style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; FLOAT: none; PADDING-TOP: 0px" id=scid:0767317B-992E-4b12-91E0-4F059A8CECA8:627849d7-d2af-48b0-b53f-3572cf75b762 class=wlWriterEditableSmartContent&gt;Technorati Tags: &lt;A href="http://technorati.com/tags/WPF" rel=tag mce_href="http://technorati.com/tags/WPF"&gt;WPF&lt;/A&gt;,&lt;A href="http://technorati.com/tags/Business+Object" rel=tag mce_href="http://technorati.com/tags/Business+Object"&gt;Business Object&lt;/A&gt;,&lt;A href="http://technorati.com/tags/Generic+Object" rel=tag mce_href="http://technorati.com/tags/Generic+Object"&gt;Generic Object&lt;/A&gt;,&lt;A href="http://technorati.com/tags/VS2010+Beta1" rel=tag mce_href="http://technorati.com/tags/VS2010+Beta1"&gt;VS2010 Beta1&lt;/A&gt;&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9674228" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vsdata/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/vsdata/archive/tags/VS2010/default.aspx">VS2010</category><category domain="http://blogs.msdn.com/vsdata/archive/tags/Data+Binding/default.aspx">Data Binding</category><category domain="http://blogs.msdn.com/vsdata/archive/tags/Generic+Object/default.aspx">Generic Object</category><category domain="http://blogs.msdn.com/vsdata/archive/tags/Business+Object/default.aspx">Business Object</category></item></channel></rss>