<feed xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US">
    <title>Dejan Jakovic</title>
    <link rel="self" type="application/xml" href="http://geekswithblogs.net/DejanJakovic/Atom.aspx" />
    <subtitle type="html"> ComponentWays</subtitle>
    <id>http://geekswithblogs.net/DejanJakovic/Default.aspx</id>
    <author>
        <name>Dejan Jakovic</name>
        <uri>http://geekswithblogs.net/DejanJakovic/Default.aspx</uri>
    </author>
    <generator uri="http://subtextproject.com" version="Subtext Version 0.0.0.0">Subtext</generator>
    <updated>2010-10-02T09:23:05Z</updated>
    <entry>
        <title>RIA Services (DomainDataSource) and ComponentWays Silverlight DataGrid (xamlDataGrid) - Add, Edit, Delete, Group, Sort, Filter data</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/DejanJakovic/archive/2010/10/02/ria-services-domaindatasource-and-componentways-silverlight-datagrid-xamldatagrid---add.aspx" />
        <id>http://geekswithblogs.net/DejanJakovic/archive/2010/10/02/ria-services-domaindatasource-and-componentways-silverlight-datagrid-xamldatagrid---add.aspx</id>
        <published>2010-10-02T09:23:05-03:00:00</published>
        <updated>2010-10-02T09:23:05Z</updated>
        <content type="html">&lt;p&gt;This article will demonstrate how to add, edit, delete, group, sort, filtering data using &lt;a href="http://www.componentways.com"&gt;ComponentWays&lt;/a&gt; Silverlight &lt;a href="http://www.componentways.com/Demo.aspx"&gt;xamlDataGrid&lt;/a&gt; and RIA Services (DomainDataSource).&lt;/p&gt;
&lt;h3&gt;Content&lt;/h3&gt;
&lt;ul&gt;
    &lt;li&gt;Starting a New Project&lt;/li&gt;
    &lt;li&gt;Exposing Data from Entity Framework&lt;/li&gt;
    &lt;li&gt;Consuming Data in the Client with DomainDataSource and xamlDataGrid&lt;/li&gt;
    &lt;li&gt;CRUD: Add, Edit, View, Delete data&lt;/li&gt;
    &lt;li&gt;Validating Data&lt;/li&gt;
    &lt;li&gt;Persisting Data and Error Handling&lt;/li&gt;
    &lt;li&gt;Grouping Data&lt;/li&gt;
    &lt;li&gt;Sorting Data&lt;/li&gt;
    &lt;li&gt;Filtering Data&lt;/li&gt;
    &lt;li&gt;Summary&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Starting a New Project&lt;/h3&gt;
&lt;p&gt;Create a new Silverlight Application (C# or VB.NET). &lt;br /&gt;
&lt;br /&gt;
&lt;img alt="New Silverlight Project" width="500" src="http://www.componentways.com/images/ddspost/NewProject.png" /&gt; &lt;br /&gt;
&lt;br /&gt;
Enable RIA Services. &lt;br /&gt;
&lt;br /&gt;
&lt;img alt="Enable Ria Services" width="500" src="http://www.componentways.com/images/ddspost/EnableRiaServices.png" /&gt;&lt;/p&gt;
&lt;h3&gt;Exposing Data from Entity Framework&lt;/h3&gt;
&lt;p&gt;Add NORTHWND.MDF file to the DomainDataSouceSample.Web\App_Data folder. Of course in a real world example, you’d just have a connection string to an existing database. &lt;br /&gt;
&lt;br /&gt;
&lt;img alt="Northwind Database" src="http://www.componentways.com/images/ddspost/NorthwindDB.png" /&gt; &lt;br /&gt;
&lt;br /&gt;
Create an Entity Framework model on top of it with the Entity Data Model Wizard. &lt;br /&gt;
&lt;br /&gt;
&lt;img alt="Entity Framework model" width="500" src="http://www.componentways.com/images/ddspost/EntityDataModel.png" /&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;img alt="Entity Data Model Wizard" width="500" src="http://www.componentways.com/images/ddspost/FromDB.png" /&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;img alt="Connection String" width="500" src="http://www.componentways.com/images/ddspost/ConnectionString.png" /&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;img alt="Database objects" width="500" src="http://www.componentways.com/images/ddspost/AddTables.png" /&gt; &lt;br /&gt;
&lt;br /&gt;
You will see the created entity model: &lt;br /&gt;
&lt;br /&gt;
&lt;img alt="Entity Model" width="500" src="http://www.componentways.com/images/ddspost/CreatedModel.png" /&gt; &lt;br /&gt;
&lt;br /&gt;
Next, we need to write some business logic that controls how to data is retrieved by the Silverlight client. To do that, we add a new DomainService. A DomainService is simply a special kind of WCF service that makes it much easier to query, update, secure and validate your data. &lt;br /&gt;
&lt;br /&gt;
&lt;img alt="DomainService" width="500" src="http://www.componentways.com/images/ddspost/DomainService.png" /&gt; &lt;br /&gt;
&lt;br /&gt;
Select which tables you want to display and edit. &lt;br /&gt;
&lt;br /&gt;
&lt;img alt="DomainService" src="http://www.componentways.com/images/ddspost/DomainService2.png" /&gt; &lt;br /&gt;
&lt;br /&gt;
This also generates metadata classes (NorthwindDomainService.metadata.cs) for hanging validation attributes on so that you can regenerate the Entity Framework model without losing any customizations.&lt;/p&gt;
&lt;h3&gt;Consuming Data in the Client with DomainDataSource and xamlDataGrid&lt;/h3&gt;
&lt;p&gt;WCF RIA Services provides the DomainDataSource control to simplify the interaction between the user interface and data from a domain context. With the DomainDataSource, you can retrieve, display, and edit data using only declarative syntax. You specify the domain context to use with the DomainDataSource, and then call the operations that are available through that domain context. &lt;br /&gt;
&lt;br /&gt;
To use the DomainDataSource control, you must add a reference in the Silverlight project to the System.Windows.Controls.DomainServices assembly. This reference is automatically added when you drag the DomainDataSource from the Toolbox. &lt;br /&gt;
&lt;br /&gt;
To use the xamlDataGrid add a reference to the ComponentWays.Windows.Controls.Data.dll (or better yet, add it to your ToolBox and then drag &amp;amp; drop it from there). &lt;br /&gt;
&lt;br /&gt;
&lt;img alt="Add reference to ComponentWays.Windows.Controls.Data.dll" width="500" src="http://www.componentways.com/images/ddspost/AddReference.png" /&gt; &lt;br /&gt;
&lt;br /&gt;
The final result you will have in a Silverlight page containing a DomainDataSource and xamlDataGrid would be something similar to that: &lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;UserControl&lt;/span&gt;&lt;span style="color: red"&gt; x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Class&lt;/span&gt;&lt;span style="color: blue"&gt;="DomainDataSouceSample.MainPage"&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;="http://schemas.microsoft.com/winfx/2006/xaml"&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;d&lt;/span&gt;&lt;span style="color: blue"&gt;="http://schemas.microsoft.com/expression/blend/2008"&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;mc&lt;/span&gt;&lt;span style="color: blue"&gt;="http://schemas.openxmlformats.org/markup-compatibility/2006"&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;mc&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Ignorable&lt;/span&gt;&lt;span style="color: blue"&gt;="d"&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;="http://schemas.componentways.com/xaml/data"&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;riaControls&lt;/span&gt;&lt;span style="color: blue"&gt;="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.DomainServices"&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;domain&lt;/span&gt;&lt;span style="color: blue"&gt;="clr-namespace:DomainDataSouceSample.Web"&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;d&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;DesignHeight&lt;/span&gt;&lt;span style="color: blue"&gt;="300"&lt;/span&gt;&lt;span style="color: red"&gt; d&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;DesignWidth&lt;/span&gt;&lt;span style="color: blue"&gt;="400"&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: red"&gt; x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;="LayoutRoot"&lt;/span&gt;&lt;span style="color: red"&gt; Background&lt;/span&gt;&lt;span style="color: blue"&gt;="White"&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;riaControls&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;DomainDataSource&lt;/span&gt;&lt;span style="color: red"&gt; x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;="domainDataSource"&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;                                     &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;AutoLoad&lt;/span&gt;&lt;span style="color: blue"&gt;="True"&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;                                     &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;QueryName&lt;/span&gt;&lt;span style="color: blue"&gt;="GetCustomers"&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;riaControls&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;DomainDataSource.DomainContext&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;domain&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;NorthwindDomainContext&lt;/span&gt;&lt;span&gt; &lt;span style="color: blue"&gt;&lt;span&gt; &lt;/span&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;riaControls&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;DomainDataSource.DomainContext&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;riaControls&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;DomainDataSource.SortDescriptors&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;riaControls&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;SortDescriptor&lt;/span&gt;&lt;span style="color: red"&gt; PropertyPath&lt;/span&gt;&lt;span style="color: blue"&gt;="CustomerID"&lt;/span&gt;&lt;span&gt; &lt;span style="color: blue"&gt;&lt;span&gt; &lt;/span&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;riaControls&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;DomainDataSource.SortDescriptors&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;riaControls&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;DomainDataSource&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;XamlDataGrid&lt;/span&gt;&lt;span style="color: red"&gt; x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;="dataGrid"&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;                            &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="color: blue"&gt;="Left"&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;                            &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;VerticalAlignment&lt;/span&gt;&lt;span style="color: blue"&gt;="Top"&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;                            &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;AutoGenerateColumns&lt;/span&gt;&lt;span style="color: blue"&gt;="False"&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;                            &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;ItemsSource&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding&lt;/span&gt;&lt;span style="color: red"&gt; Data&lt;/span&gt;&lt;span style="color: blue"&gt;,&lt;/span&gt;&lt;span style="color: red"&gt; ElementName&lt;/span&gt;&lt;span style="color: blue"&gt;=domainDataSource}"&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;XamlDataGrid.Columns&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;XamlDataGridTextColumn&lt;/span&gt;&lt;span style="color: red"&gt; Binding&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding&lt;/span&gt;&lt;span style="color: red"&gt; CustomerID&lt;/span&gt;&lt;span style="color: blue"&gt;}"&lt;/span&gt; &lt;span&gt;&lt;span style="color: red"&gt;Header&lt;/span&gt;&lt;span style="color: blue"&gt;="Customer ID" /&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;XamlDataGridTextColumn&lt;/span&gt;&lt;span style="color: red"&gt; Binding&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding&lt;/span&gt;&lt;span style="color: red"&gt; CompanyName&lt;/span&gt;&lt;span style="color: blue"&gt;}"&lt;/span&gt; &lt;span&gt;&lt;span style="color: red"&gt;Header&lt;/span&gt;&lt;span style="color: blue"&gt;="Company Name" /&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;XamlDataGridTextColumn&lt;/span&gt;&lt;span style="color: red"&gt; Binding&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding&lt;/span&gt;&lt;span style="color: red"&gt; Phone&lt;/span&gt;&lt;span style="color: blue"&gt;}"&lt;/span&gt; &lt;span&gt;&lt;span style="color: red"&gt; Header&lt;/span&gt;&lt;span style="color: blue"&gt;="Phone" /&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;XamlDataGridTextColumn&lt;/span&gt;&lt;span style="color: red"&gt; Binding&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding&lt;/span&gt;&lt;span style="color: red"&gt; PostalCode&lt;/span&gt;&lt;span style="color: blue"&gt;}"&lt;/span&gt; &lt;span&gt;&lt;span style="color: red"&gt;Header&lt;/span&gt;&lt;span style="color: blue"&gt;="Postal Code" /&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;XamlDataGridDateColumn&lt;/span&gt;&lt;span style="color: red"&gt; Binding&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding&lt;/span&gt;&lt;span style="color: red"&gt; CreationDate&lt;/span&gt;&lt;span style="color: blue"&gt;}"&lt;/span&gt;&lt;span&gt;&lt;span style="color: red"&gt; Header&lt;/span&gt;&lt;span style="color: blue"&gt;="Creation Date" /&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;XamlDataGrid.Columns&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;XamlDataGrid.ToolBarSettings&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;XamlDataGridToolBarSettings&lt;/span&gt;&lt;span style="color: red"&gt; CommandButtonsVisibility&lt;/span&gt;&lt;span style="color: blue"&gt;="All" /&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;XamlDataGrid.ToolBarSettings&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;XamlDataGrid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;UserControl&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;img alt="ComponentWays Silverlight DataGrid - xamlDataGrid" src="http://www.componentways.com/images/ddspost/XamlDataGrid.png" /&gt;&lt;/p&gt;
&lt;h3&gt;CRUD: Add, Edit, View, Delete data&lt;/h3&gt;
&lt;p&gt;One of the ways to add, edit, view, delete data is by using the integrated ToolBar (bottom left in this example).You can launch Add|Edit|View Item Dialog by clicking on the "Add"|"Edit"|"View" button in the xamlDataGrid ToolBar. &lt;br /&gt;
&lt;br /&gt;
&lt;img alt="ComponentWays Silverlight DataGrid - Add New Item Dialog" src="http://www.componentways.com/images/ddspost/AddData.png" /&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;img alt="ComponentWays Silverlight DataGrid - Edit Item Dialog" src="http://www.componentways.com/images/ddspost/EditData.png" /&gt; &lt;br /&gt;
&lt;br /&gt;
Also you can edit cell values in-place with double click on specific cell. &lt;br /&gt;
&lt;br /&gt;
&lt;img alt="ComponentWays Silverlight DataGrid - Inline Editors" src="http://www.componentways.com/images/ddspost/InlineEditors.png" /&gt;&lt;/p&gt;
&lt;h3&gt;Validating Data&lt;/h3&gt;
&lt;p&gt;In step 2 when we created NorthwindDomainService domain service, we also created and metadata classes for hanging validation attributes (NorthwindDomainService.metadata.cs). In this file we can attach custom attributes to the properties. &lt;br /&gt;
&lt;br /&gt;
[C#] &lt;br /&gt;
&lt;br /&gt;
// For example, the following marks the Xyz property as a&lt;br /&gt;
// required property and specifies the format for valid values:&lt;br /&gt;
// [Required]&lt;br /&gt;
// [RegularExpression("[A-Z][A-Za-z0-9]*")]&lt;br /&gt;
// [StringLength(32)]&lt;br /&gt;
// public string Xyz { get; set; }&lt;br /&gt;
&lt;br /&gt;
[VB.NET]&lt;br /&gt;
&lt;br /&gt;
'For example, the following marks the Xyz property as a&lt;br /&gt;
' required property and specifies the format for valid values:&lt;br /&gt;
' &amp;lt;Required()&amp;gt;&lt;br /&gt;
' &amp;lt;RegularExpression("[A-Z][A-Za-z0-9]*")&amp;gt;&lt;br /&gt;
' &amp;lt;StringLength(32)&amp;gt;&lt;br /&gt;
' Public Property Xyz As String&lt;br /&gt;
&lt;br /&gt;
By default the CompanyName is a required field, so if it is empty we’ll get an error. &lt;br /&gt;
&lt;br /&gt;
&lt;img alt="ComponentWays Silverlight DataGrid - Data Validation" src="http://www.componentways.com/images/ddspost/Validating.png" /&gt;&lt;/p&gt;
&lt;h3&gt;Persisting Data and Error Handling&lt;/h3&gt;
&lt;p&gt;To persist data modifications, call the SubmitChanges method on the DomainDataSource object. To cancel changes, call the RejectChanges method. &lt;br /&gt;
&lt;br /&gt;
To handle errors when submitting data use a SubmitOperation_Callback when you calling the SubmitChanges method and check if there are errors. &lt;br /&gt;
&lt;br /&gt;
The code for this will look like: &lt;br /&gt;
&lt;br /&gt;
[Xaml] &lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;UserControl&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Class&lt;/span&gt;&lt;span style="color: blue"&gt;="DomainDataSouceSample.MainPage"&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;="http://schemas.microsoft.com/winfx/2006/xaml"&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;d&lt;/span&gt;&lt;span style="color: blue"&gt;="http://schemas.microsoft.com/expression/blend/2008"&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;mc&lt;/span&gt;&lt;span style="color: blue"&gt;="http://schemas.openxmlformats.org/markup-compatibility/2006"&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;="http://schemas.componentways.com/xaml/data"&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;riaControls&lt;/span&gt;&lt;span style="color: blue"&gt;="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.DomainServices"&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;domain&lt;/span&gt;&lt;span style="color: blue"&gt;="clr-namespace:DomainDataSouceSample.Web"&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;mc&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Ignorable&lt;/span&gt;&lt;span style="color: blue"&gt;="d"&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;d&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;DesignHeight&lt;/span&gt;&lt;span style="color: blue"&gt;="300"&lt;/span&gt;&lt;span style="color: red"&gt; d&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;DesignWidth&lt;/span&gt;&lt;span style="color: blue"&gt;="400"&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: red"&gt; x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;="LayoutRoot"&lt;/span&gt;&lt;span style="color: red"&gt; Background&lt;/span&gt;&lt;span style="color: blue"&gt;="White"&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;riaControls&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;DomainDataSource&lt;/span&gt;&lt;span style="color: red"&gt; x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;="domainDataSource"&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;                                     &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;AutoLoad&lt;/span&gt;&lt;span style="color: blue"&gt;="True"&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;                                     &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;QueryName&lt;/span&gt;&lt;span style="color: blue"&gt;="GetCustomers"&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;riaControls&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;DomainDataSource.DomainContext&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;domain&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;NorthwindDomainContext&lt;/span&gt;&lt;span&gt; &lt;span style="color: blue"&gt;&lt;span&gt; &lt;/span&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;riaControls&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;DomainDataSource.DomainContext&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;riaControls&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;DomainDataSource.SortDescriptors&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;riaControls&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;SortDescriptor&lt;/span&gt;&lt;span style="color: red"&gt; PropertyPath&lt;/span&gt;&lt;span style="color: blue"&gt;="CustomerID"&lt;/span&gt;&lt;span&gt; &lt;span style="color: blue"&gt;&lt;span&gt; &lt;/span&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;riaControls&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;DomainDataSource.SortDescriptors&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;riaControls&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;DomainDataSource&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: red"&gt; VerticalAlignment&lt;/span&gt;&lt;span style="color: blue"&gt;="Top"&lt;/span&gt;&lt;span style="color: red"&gt; HorizontalAlignment&lt;/span&gt;&lt;span style="color: blue"&gt;="Left"&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;RowDefinition&lt;/span&gt;&lt;span style="color: blue"&gt; /&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;RowDefinition&lt;/span&gt;&lt;span style="color: red"&gt; Height&lt;/span&gt;&lt;span style="color: blue"&gt;="Auto" /&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;XamlDataGrid&lt;/span&gt;&lt;span style="color: red"&gt; x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;="dataGrid"&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;                                &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;AutoGenerateColumns&lt;/span&gt;&lt;span style="color: blue"&gt;="False"&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;                                &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span&gt; &lt;/span&gt;ItemsSource&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding&lt;/span&gt;&lt;span style="color: red"&gt; Data&lt;/span&gt;&lt;span style="color: blue"&gt;,&lt;/span&gt;&lt;span style="color: red"&gt; ElementName&lt;/span&gt;&lt;span style="color: blue"&gt;=domainDataSource}"&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;XamlDataGrid.Columns&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;XamlDataGridTextColumn&lt;/span&gt;&lt;span style="color: red"&gt; Binding&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding&lt;/span&gt;&lt;span style="color: red"&gt; CustomerID&lt;/span&gt;&lt;span style="color: blue"&gt;}" &lt;/span&gt;&lt;span&gt;&lt;span style="color: red"&gt; Header&lt;/span&gt;&lt;span style="color: blue"&gt;="Customer ID" /&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;XamlDataGridTextColumn&lt;/span&gt;&lt;span style="color: red"&gt; Binding&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding&lt;/span&gt;&lt;span style="color: red"&gt; CompanyName&lt;/span&gt;&lt;span style="color: blue"&gt;}"&lt;/span&gt; &lt;span&gt;&lt;span style="color: red"&gt;Header&lt;/span&gt;&lt;span style="color: blue"&gt;="Company Name" /&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;XamlDataGridTextColumn&lt;/span&gt;&lt;span style="color: red"&gt; Binding&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding&lt;/span&gt;&lt;span style="color: red"&gt; Phone&lt;/span&gt;&lt;span style="color: blue"&gt;}"&lt;/span&gt; &lt;span&gt;&lt;span style="color: red"&gt;Header&lt;/span&gt;&lt;span style="color: blue"&gt;="Phone" /&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;XamlDataGridTextColumn&lt;/span&gt;&lt;span style="color: red"&gt; Binding&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding&lt;/span&gt;&lt;span style="color: red"&gt; PostalCode&lt;/span&gt;&lt;span style="color: blue"&gt;}"&lt;/span&gt; &lt;span&gt;&lt;span style="color: red"&gt;Header&lt;/span&gt;&lt;span style="color: blue"&gt;="Postal Code" /&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;XamlDataGridDateColumn&lt;/span&gt;&lt;span style="color: red"&gt; Binding&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding&lt;/span&gt;&lt;span style="color: red"&gt; CreationDate&lt;/span&gt;&lt;span style="color: blue"&gt;}"&lt;/span&gt;&lt;span&gt;&lt;span style="color: red"&gt; Header&lt;/span&gt;&lt;span style="color: blue"&gt;="Creation Date" /&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;XamlDataGrid.Columns&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;XamlDataGrid.ToolBarSettings&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;XamlDataGridToolBarSettings&lt;/span&gt;&lt;span style="color: red"&gt; CommandButtonsVisibility&lt;/span&gt;&lt;span style="color: blue"&gt;="All" /&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;XamlDataGrid.ToolBarSettings&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;XamlDataGrid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;StackPanel&lt;/span&gt;&lt;span style="color: red"&gt; Grid.Row&lt;/span&gt;&lt;span style="color: blue"&gt;="1"&lt;/span&gt;&lt;span style="color: red"&gt; Orientation&lt;/span&gt;&lt;span style="color: blue"&gt;="Horizontal"&lt;/span&gt;&lt;span style="color: red"&gt; HorizontalAlignment&lt;/span&gt;&lt;span style="color: blue"&gt;="Right"&lt;/span&gt;&lt;span style="color: red"&gt; Margin&lt;/span&gt;&lt;span style="color: blue"&gt;="0,4,0,0"&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Button&lt;/span&gt;&lt;span style="color: red"&gt; x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;="SubmitButton"&lt;/span&gt;&lt;span style="color: red"&gt; Content&lt;/span&gt;&lt;span style="color: blue"&gt;="Submit Changes"&lt;/span&gt;&lt;span style="color: red"&gt; Click&lt;/span&gt;&lt;span style="color: blue"&gt;="SubmitButton_Click"&lt;/span&gt;&lt;span style="color: red"&gt; Padding&lt;/span&gt;&lt;span style="color: blue"&gt;="4" /&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Button&lt;/span&gt;&lt;span style="color: red"&gt; x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;="RejectButton"&lt;/span&gt;&lt;span style="color: red"&gt; Content&lt;/span&gt;&lt;span style="color: blue"&gt;="Reject Changes"&lt;/span&gt;&lt;span style="color: red"&gt; Click&lt;/span&gt;&lt;span style="color: blue"&gt;="RejectButton_Click"&lt;/span&gt;&lt;span style="color: red"&gt; Padding&lt;/span&gt;&lt;span style="color: blue"&gt;="4" /&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;StackPanel&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;UserControl&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
[C#] &lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span&gt; System;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span&gt; System.Collections.Generic;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span&gt; System.Linq;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span&gt; System.Net;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span&gt; System.Windows;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span&gt; System.Windows.Controls;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span&gt; System.Windows.Documents;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span&gt; System.Windows.Input;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span&gt; System.Windows.Media;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span&gt; System.Windows.Media.Animation;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span&gt; System.Windows.Shapes;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: blue"&gt;using&lt;/span&gt;&lt;span&gt; System.ServiceModel.DomainServices.Client;&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: blue"&gt;namespace&lt;/span&gt;&lt;span&gt; DomainDataSouceSample&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;{&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;partial&lt;/span&gt; &lt;span style="color: blue"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;MainPage&lt;/span&gt; : &lt;span style="color: #2b91af"&gt;UserControl&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;    &lt;/span&gt;{&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; MainPage()&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;        &lt;/span&gt;{&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;            &lt;/span&gt;InitializeComponent();&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;        &lt;/span&gt;}&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;o:p&gt; &lt;/o:p&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;span style="color: blue"&gt;private&lt;/span&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; SubmitButton_Click(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;span style="color: #2b91af"&gt;RoutedEventArgs&lt;/span&gt; e)&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;        &lt;/span&gt;{&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;            &lt;/span&gt;&lt;span style="color: blue"&gt;this&lt;/span&gt;.domainDataSource.DomainContext.SubmitChanges(SubmitOperation_Callback, &lt;span style="color: blue"&gt;null&lt;/span&gt;);&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;        &lt;/span&gt;}&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;o:p&gt; &lt;/o:p&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;span style="color: blue"&gt;private&lt;/span&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; RejectButton_Click(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;span style="color: #2b91af"&gt;RoutedEventArgs&lt;/span&gt; e)&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;        &lt;/span&gt;{&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;            &lt;/span&gt;&lt;span style="color: blue"&gt;this&lt;/span&gt;.domainDataSource.DomainContext.RejectChanges();&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;        &lt;/span&gt;}&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;o:p&gt; &lt;/o:p&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;span style="color: blue"&gt;private&lt;/span&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; NorthwindDomainContext_PropertyChanged(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, System.ComponentModel.&lt;span style="color: #2b91af"&gt;PropertyChangedEventArgs&lt;/span&gt; e)&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;        &lt;/span&gt;{&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;            &lt;/span&gt;&lt;span style="color: blue"&gt;bool&lt;/span&gt; hasChanges = &lt;span style="color: blue"&gt;this&lt;/span&gt;.domainDataSource.DomainContext.HasChanges;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;o:p&gt; &lt;/o:p&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&lt;span&gt;            &lt;/span&gt;&lt;span style="color: blue"&gt;this&lt;/span&gt;.SubmitButton.IsEnabled = hasChanges;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;            &lt;/span&gt;&lt;span style="color: blue"&gt;this&lt;/span&gt;.RejectButton.IsEnabled = hasChanges;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;        &lt;/span&gt;}&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;o:p&gt; &lt;/o:p&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;span style="color: blue"&gt;private&lt;/span&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; SubmitOperation_Callback(&lt;span style="color: #2b91af"&gt;SubmitOperation&lt;/span&gt; operation)&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;        &lt;/span&gt;{&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;            &lt;/span&gt;&lt;span style="color: blue"&gt;if&lt;/span&gt; (operation.HasError)&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;            &lt;/span&gt;{&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;                &lt;/span&gt;&lt;span style="color: #2b91af"&gt;MessageBox&lt;/span&gt;.Show(operation.Error.ToString(), &lt;span style="color: #a31515"&gt;"Submit Error"&lt;/span&gt;, &lt;span style="color: #2b91af"&gt;MessageBoxButton&lt;/span&gt;.OK);&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;                &lt;/span&gt;operation.MarkErrorAsHandled();&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;            &lt;/span&gt;}&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;        &lt;/span&gt;}&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;    &lt;/span&gt;}&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;}&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
[VB.NET] &lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: blue"&gt;Imports&lt;/span&gt;&lt;span&gt; System.ServiceModel.DomainServices.Client&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: blue"&gt;Partial&lt;/span&gt;&lt;span&gt; &lt;span style="color: blue"&gt;Public&lt;/span&gt; &lt;span style="color: blue"&gt;Class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;MainPage&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span style="color: blue"&gt;Inherits&lt;/span&gt; &lt;span style="color: #2b91af"&gt;UserControl&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span style="color: blue"&gt;Public&lt;/span&gt; &lt;span style="color: blue"&gt;Sub&lt;/span&gt; &lt;span style="color: blue"&gt;New&lt;/span&gt;()&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;        &lt;/span&gt;InitializeComponent()&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span style="color: blue"&gt;End&lt;/span&gt; &lt;span style="color: blue"&gt;Sub&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span style="color: blue"&gt;Private&lt;/span&gt; &lt;span style="color: blue"&gt;Sub&lt;/span&gt; SubmitButton_Click(&lt;span style="color: blue"&gt;ByVal&lt;/span&gt; sender &lt;span style="color: blue"&gt;As&lt;/span&gt; &lt;span style="color: blue"&gt;Object&lt;/span&gt;, &lt;span style="color: blue"&gt;ByVal&lt;/span&gt; e &lt;span style="color: blue"&gt;As&lt;/span&gt; &lt;span style="color: #2b91af"&gt;RoutedEventArgs&lt;/span&gt;)&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;span style="color: blue"&gt;Me&lt;/span&gt;.domainDataSource.DomainContext.SubmitChanges(&lt;span style="color: blue"&gt;AddressOf&lt;/span&gt; SubmitOperation_Callback, &lt;span style="color: blue"&gt;Nothing&lt;/span&gt;)&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span style="color: blue"&gt;End&lt;/span&gt; &lt;span style="color: blue"&gt;Sub&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span style="color: blue"&gt;Private&lt;/span&gt; &lt;span style="color: blue"&gt;Sub&lt;/span&gt; RejectButton_Click(&lt;span style="color: blue"&gt;ByVal&lt;/span&gt; sender &lt;span style="color: blue"&gt;As&lt;/span&gt; &lt;span style="color: blue"&gt;Object&lt;/span&gt;, &lt;span style="color: blue"&gt;ByVal&lt;/span&gt; e &lt;span style="color: blue"&gt;As&lt;/span&gt; &lt;span style="color: #2b91af"&gt;RoutedEventArgs&lt;/span&gt;)&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;span style="color: blue"&gt;Me&lt;/span&gt;.domainDataSource.DomainContext.RejectChanges()&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span style="color: blue"&gt;End&lt;/span&gt; &lt;span style="color: blue"&gt;Sub&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span style="color: blue"&gt;Private&lt;/span&gt; &lt;span style="color: blue"&gt;Sub&lt;/span&gt; NorthwindDomainContext_PropertyChanged(&lt;span style="color: blue"&gt;ByVal&lt;/span&gt; sender &lt;span style="color: blue"&gt;As&lt;/span&gt; &lt;span style="color: blue"&gt;Object&lt;/span&gt;, &lt;span style="color: blue"&gt;ByVal&lt;/span&gt; e &lt;span style="color: blue"&gt;As&lt;/span&gt; System.ComponentModel.&lt;span style="color: #2b91af"&gt;PropertyChangedEventArgs&lt;/span&gt;)&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;span style="color: blue"&gt;Dim&lt;/span&gt; hasChanges &lt;span style="color: blue"&gt;As&lt;/span&gt; &lt;span style="color: blue"&gt;Boolean&lt;/span&gt; = &lt;span style="color: blue"&gt;Me&lt;/span&gt;.domainDataSource.DomainContext.HasChanges&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;span style="color: blue"&gt;Me&lt;/span&gt;.SubmitButton.IsEnabled = hasChanges&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;span style="color: blue"&gt;Me&lt;/span&gt;.RejectButton.IsEnabled = hasChanges&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span style="color: blue"&gt;End&lt;/span&gt; &lt;span style="color: blue"&gt;Sub&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span style="color: blue"&gt;Private&lt;/span&gt; &lt;span style="color: blue"&gt;Sub&lt;/span&gt; SubmitOperation_Callback(&lt;span style="color: blue"&gt;ByVal&lt;/span&gt; operation &lt;span style="color: blue"&gt;As&lt;/span&gt; &lt;span style="color: #2b91af"&gt;SubmitOperation&lt;/span&gt;)&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;span style="color: blue"&gt;If&lt;/span&gt; operation.HasError &lt;span style="color: blue"&gt;Then&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;            &lt;/span&gt;&lt;span style="color: #2b91af"&gt;MessageBox&lt;/span&gt;.Show(operation.[Error].ToString(), &lt;span style="color: #a31515"&gt;"Submit Error"&lt;/span&gt;, &lt;span style="color: #2b91af"&gt;MessageBoxButton&lt;/span&gt;.OK)&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;            &lt;/span&gt;operation.MarkErrorAsHandled()&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;span style="color: blue"&gt;End&lt;/span&gt; &lt;span style="color: blue"&gt;If&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span style="color: blue"&gt;End&lt;/span&gt; &lt;span style="color: blue"&gt;Sub&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: blue"&gt;End&lt;/span&gt;&lt;span&gt; &lt;span style="color: blue"&gt;Class&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;img alt="ComponentWays Silverlight DataGrid - Persisting Data" src="http://www.componentways.com/images/ddspost/Persisting.png" /&gt; &lt;br /&gt;
&lt;br /&gt;
If we delete some row and trying submitting the changes, we’ll get an error &lt;br /&gt;
&lt;br /&gt;
&lt;img alt="ComponentWays Silverlight DataGrid - Error Handling" src="http://www.componentways.com/images/ddspost/SubmitError.png" /&gt;&lt;/p&gt;
&lt;h3&gt;Grouping Data&lt;/h3&gt;
&lt;p&gt;The xamlDataGrid provides the GroupDescriptions collection to facilitate grouping the data by property values. In the GroupDescriptions collection, you add GroupDescriptor instances that define the value to use for grouping. You can add as many GroupDescriptor instances as needed. &lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;data&lt;/span&gt;&lt;span style="color: blue"&gt;="clr-namespace:System.Windows.Data;assembly=System.Windows"&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;…&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;XamlDataGrid&lt;/span&gt;&lt;span style="color: red"&gt; x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;="dataGrid"&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: red"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="color: blue"&gt;="Top"&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;                     &lt;/span&gt;&lt;span style="color: red"&gt;IsReadOnly&lt;/span&gt;&lt;span style="color: blue"&gt;="True"&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;                     &lt;/span&gt;&lt;span style="color: red"&gt;AutoGenerateColumns&lt;/span&gt;&lt;span style="color: blue"&gt;="false"&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;&lt;span&gt;                     &lt;/span&gt;&lt;span style="color: red"&gt;ItemsSource&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding&lt;/span&gt;&lt;span style="color: red"&gt; Data&lt;/span&gt;&lt;span style="color: blue"&gt;,&lt;/span&gt;&lt;span style="color: red"&gt; ElementName&lt;/span&gt;&lt;span style="color: blue"&gt;=domainDataSource}"&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;XamlDataGrid.GroupDescriptions&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: #a31515"&gt;&lt;span&gt;       &lt;/span&gt;&lt;span&gt;       &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;data&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;PropertyGroupDescription&lt;/span&gt;&lt;span style="color: red"&gt; PropertyName&lt;/span&gt;&lt;span style="color: blue"&gt;="Country" /&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;XamlDataGrid.GroupDescriptions&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;
&lt;span&gt;…&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;img alt="ComponentWays Silverlight DataGrid - Grouping" src="http://www.componentways.com/images/ddspost/Grouping.png" /&gt;&lt;/p&gt;
&lt;h3&gt;Sorting Data&lt;/h3&gt;
&lt;p&gt;Sorting is enabled by default for all xamlDataGrid columns. To sort a column, just click on the header of the respective column. The default sorting logic of the grid in almost all cases is good enough - depending on the type of the column (date, int, float, double, etc) it sorts the column while switching ascending and descending orders.&lt;/p&gt;
&lt;h3&gt;Filtering Data&lt;/h3&gt;
&lt;p&gt;You can filter data by using the Filter Dialog functionality. You can launch Filter Dialog clicking on the "Filter" button in the XamlDataGrid ToolBar (bottom left in this example). For this, you need to have toolbar enabled. &lt;br /&gt;
&lt;br /&gt;
&lt;img alt="ComponentWays Silverlight DataGrid - Filter Dialog" src="http://www.componentways.com/images/ddspost/FilterDialog.png" /&gt; &lt;br /&gt;
&lt;br /&gt;
The XamlDataGrid supports FilterRow filtering mode. You can set it with FilteringMode property. In this mode you can specify a filter condition on the top of each column of the grid. &lt;br /&gt;
 &lt;/p&gt;
&lt;p&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;cwData&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;XamlDataGrid&lt;/span&gt;&lt;span style="color: red; font-size: 9.5pt"&gt; x&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;="dataGrid"&lt;/span&gt;&lt;span style="color: red"&gt; FilteringMode&lt;/span&gt;&lt;span style="color: blue"&gt;="FilterRow" &lt;/span&gt;…&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;img alt="ComponentWays Silverlight DataGrid - Filters" src="http://www.componentways.com/images/ddspost/FilterRow.png" /&gt; &lt;br /&gt;
&lt;br /&gt;
In the both cases depending on the specific column type the built-in editors are used: TextBox, CheckBox, DatePicker, ComboBox, AutoCompleteBox. It is all integrated in the XamlDataGrid.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h3&gt;Summary&lt;/h3&gt;
&lt;p&gt;So that’s all. We created all this with writing almost no code. For more info visit our site - &lt;a href="http://www.componentways.com/"&gt;ComponentWays&lt;/a&gt;. Discuss in our &lt;a href="http://www.componentways.com/forum/"&gt;forum&lt;/a&gt;. Follow us on &lt;a href="http://twitter.com/ComponentWays"&gt;Twitter&lt;/a&gt;&lt;/p&gt;&lt;img src="http://geekswithblogs.net/DejanJakovic/aggbug/142078.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/DejanJakovic/comments/142078.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/DejanJakovic/comments/commentRss/142078.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/DejanJakovic/services/trackbacks/142078.aspx</trackback:ping>
    </entry>
</feed>
