<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.infragistics.com/community/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Alex&amp;#39;s Blog</title><subtitle type="html" /><id>http://www.infragistics.com/community/blogs/alex_fidanov/atom.aspx</id><link rel="alternate" type="text/html" href="http://www.infragistics.com/community/blogs/alex_fidanov/default.aspx" /><link rel="self" type="application/atom+xml" href="http://www.infragistics.com/community/blogs/alex_fidanov/atom.aspx" /><generator uri="http://communityserver.org" version="4.1.36.8414">Community Server</generator><updated>2009-07-28T10:24:00Z</updated><entry><title>Selection behavior on XamTilesControl with Attached properties</title><link rel="alternate" type="text/html" href="/community/blogs/alex_fidanov/archive/2010/09/07/selection-behavior-on-xamtilescontrol-with-attached-properties.aspx" /><id>/community/blogs/alex_fidanov/archive/2010/09/07/selection-behavior-on-xamtilescontrol-with-attached-properties.aspx</id><published>2010-09-07T08:19:00Z</published><updated>2010-09-07T08:19:00Z</updated><content type="html">&lt;p&gt;XamTilesControl is a derived ItemsControl and does not support selection. If you want to have the notion of selected item(s) you can achieve this by using attached properties. Creating attached properties can extend the functionality of the XamTilesControl and the Tiles to create a simple selection behavior for the XamTilesControl.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Behavior class: &lt;/strong&gt;(actual code is omitted because of length)&lt;/p&gt;
&lt;p&gt;&lt;i&gt;SelectionAdvisor : DependencyObject&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Attached Properties:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;bool IsSelected&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;i&gt;bool AllowMultipleSelection&lt;/i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Tile &amp;nbsp;SelectedTile&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How it works:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;i&gt;AllowMultipleSelection &lt;/i&gt;property is set on the XamTilesControl to allow or forbid selecting multiple tiles. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;i&gt;SelectedTile &lt;/i&gt;property is also set on the XamTilesControl and returns the last selected tile. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;i&gt;IsSelected &lt;/i&gt;is being set on the Tile to indicate whether a Tile is selected or not.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;Create a style to visually represent the state of the Tile:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="color:black;overflow:auto;width:99.5%;"&gt;
&lt;pre style="margin:0em;"&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;span style="color:#a31515;"&gt;Style&lt;span style="color:#ff0000;"&gt; TargetType&lt;span style="color:#0000ff;"&gt;=&amp;quot;&lt;span style="color:#000000;"&gt;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;x&lt;span style="color:#0000ff;"&gt;:&lt;span style="color:#a31515;"&gt;Type&lt;span style="color:#ff0000;"&gt; igTiles&lt;span style="color:#0000ff;"&gt;:&lt;span style="color:#ff0000;"&gt;Tile&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#000000;"&gt;}&lt;/span&gt;&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;&lt;span&gt;     &lt;/span&gt;&lt;span style="color:#a31515;"&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;span style="color:#a31515;"&gt;Style.Triggers&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;&lt;span style="color:#a31515;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#a31515;"&gt;&lt;span style="color:#a31515;"&gt;     &lt;/span&gt;&lt;span style="color:#a31515;"&gt; &lt;/span&gt;     &lt;/span&gt;&lt;span style="color:#a31515;"&gt; &lt;/span&gt;&amp;lt;&lt;span style="color:#a31515;"&gt;DataTrigger&lt;span style="color:#ff0000;"&gt; Binding&lt;span style="color:#0000ff;"&gt;=&amp;quot;&lt;span style="color:#000000;"&gt;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Binding&lt;span style="color:#ff0000;"&gt; Path&lt;span style="color:#0000ff;"&gt;=&lt;i&gt;(selection:SelectionAdvisor.IsSelected)&lt;/i&gt;,&lt;span style="color:#ff0000;"&gt; RelativeSource&lt;span style="color:#0000ff;"&gt;=&lt;span style="color:#000000;"&gt;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RelativeSource&lt;span style="color:#ff0000;"&gt; Self&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#000000;"&gt;}&lt;/span&gt;&lt;span style="color:#000000;"&gt;}&lt;/span&gt;&amp;quot;&lt;span style="color:#ff0000;"&gt; Value&lt;span style="color:#0000ff;"&gt;=&amp;quot;True&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;&lt;span style="color:#a31515;"&gt;                    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;span style="color:#a31515;"&gt;Setter&lt;span style="color:#ff0000;"&gt; Property&lt;span style="color:#0000ff;"&gt;=&amp;quot;Background&amp;quot;&lt;span style="color:#ff0000;"&gt; Value&lt;span style="color:#0000ff;"&gt;=&amp;quot;&lt;span style="color:#000000;"&gt;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DynamicResource&lt;span style="color:#0000ff;"&gt; &lt;span style="color:#000000;"&gt;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;x&lt;span style="color:#0000ff;"&gt;:&lt;span style="color:#a31515;"&gt;Static&lt;span style="color:#ff0000;"&gt; igTiles&lt;span style="color:#0000ff;"&gt;:&lt;span style="color:#ff0000;"&gt;TileBrushKeys&lt;span style="color:#0000ff;"&gt;.TileCaptionBtnHottrackBackgroundFillKey&lt;span style="color:#000000;"&gt;}&lt;/span&gt;&lt;span style="color:#000000;"&gt;}&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;&lt;span style="color:#a31515;"&gt;            &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;span style="color:#a31515;"&gt;DataTrigger&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;&lt;span style="color:#a31515;"&gt;      &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;span style="color:#a31515;"&gt;Style.Triggers&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt; &lt;span style="color:#a31515;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;span style="color:#a31515;"&gt;Style&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/selection.png"&gt;&lt;img src="http://blogs.infragistics.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/selection.png" border="0" alt="" /&gt;&lt;/a&gt; &lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;Full sample :(Please visit the site to view this media)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=249289" width="1" height="1"&gt;</content><author><name>alfidanov</name><uri>http://www.infragistics.com/profile/MTQ4ODk=</uri></author><category term="Attached property" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/Attached+property/default.aspx" /><category term="Selection" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/Selection/default.aspx" /><category term="Selected Tile" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/Selected+Tile/default.aspx" /><category term="XamTilesControl" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/XamTilesControl/default.aspx" /></entry><entry><title>Setting the FieldSettings and FieldLayoutSettings of XamDataGrid</title><link rel="alternate" type="text/html" href="/community/blogs/alex_fidanov/archive/2010/08/27/setting-the-fieldsettings-and-fieldlayoutsettings-of-xamdatagrid.aspx" /><id>/community/blogs/alex_fidanov/archive/2010/08/27/setting-the-fieldsettings-and-fieldlayoutsettings-of-xamdatagrid.aspx</id><published>2010-08-27T05:31:00Z</published><updated>2010-08-27T05:31:00Z</updated><content type="html">&lt;p&gt;&lt;span style="font-family:mceinline;"&gt;Global settings VS Local Settings&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/Settings.png"&gt;&lt;img src="http://blogs.infragistics.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/Settings.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A complete sample project you may find here :&amp;nbsp;(Please visit the site to view this media)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=247744" width="1" height="1"&gt;</content><author><name>alfidanov</name><uri>http://www.infragistics.com/profile/MTQ4ODk=</uri></author></entry><entry><title>How To: Export images from the XamDataGrid to Excel Worksheet</title><link rel="alternate" type="text/html" href="/community/blogs/alex_fidanov/archive/2010/07/28/how-to-export-images-from-the-xamdatagrid-to-excel-worksheet.aspx" /><id>/community/blogs/alex_fidanov/archive/2010/07/28/how-to-export-images-from-the-xamdatagrid-to-excel-worksheet.aspx</id><published>2010-07-28T14:32:00Z</published><updated>2010-07-28T14:32:00Z</updated><content type="html">&lt;p&gt;The &lt;a target="_blank" href="http://help.infragistics.com/NetAdvantage/WPF/2010.2/CLR4.0/?page=xamDataGrid_Exporting_to_Excel.html"&gt;DataPresenterExcelExporter&lt;/a&gt;&amp;nbsp;component is used to export the values of the cells into an Excel document. If you have an Image column in your XamDataGrid, the path of the Image will be exported rather than the image itself.&lt;/p&gt;
&lt;p&gt;One way to export the actual image rather than its path is to handle the cell exporting events of the Excel exporter and add the image in the Worksheet. The Image in the Worksheet is represented as a WorkSheetImage object inserted in the WorkSheet.Shapes collection. As Excel cells do not support image content, the actual image has to be positioned over them. This is achievable by setting the TopLeftCornerCell and BottomRightCornerCell properties of the WorkSheetImage.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Sample Setup&lt;/h2&gt;
&lt;p&gt;1. Create a bind a XamDataGrid with an Image column (sample data source from Blend 4 - included in the sample):&lt;/p&gt;

&lt;div style="color:black;overflow:auto;width:99.5%;"&gt;
&lt;pre style="margin:0em;"&gt;      &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;span style="color:#a31515;"&gt;Grid&lt;span style="color:#ff0000;"&gt; x&lt;span style="color:#0000ff;"&gt;:&lt;span style="color:#ff0000;"&gt;Name&lt;span style="color:#0000ff;"&gt;=&amp;quot;LayoutRoot&amp;quot;&lt;span style="color:#ff0000;"&gt; DataContext&lt;span style="color:#0000ff;"&gt;=&amp;quot;&lt;span style="color:#000000;"&gt;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Binding&lt;span style="color:#ff0000;"&gt; Source&lt;span style="color:#0000ff;"&gt;=&lt;span style="color:#000000;"&gt;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource&lt;span style="color:#ff0000;"&gt; SampleDataSource&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#000000;"&gt;}&lt;/span&gt;&lt;span style="color:#000000;"&gt;}&lt;/span&gt;&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt; &lt;span style="color:#a31515;"&gt;		&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;span style="color:#a31515;"&gt;Grid.RowDefinitions&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt; &lt;span style="color:#a31515;"&gt;			&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;span style="color:#ff0000;"&gt; Height&lt;span style="color:#0000ff;"&gt;=&amp;quot;0.8*&amp;quot;/&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt; &lt;span style="color:#a31515;"&gt;			&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;span style="color:#ff0000;"&gt; Height&lt;span style="color:#0000ff;"&gt;=&amp;quot;0.1*&amp;quot;/&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt; &lt;span style="color:#a31515;"&gt;		&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;span style="color:#a31515;"&gt;Grid.RowDefinitions&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt; &lt;span style="color:#a31515;"&gt;        &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;span style="color:#a31515;"&gt;igDP&lt;span style="color:#0000ff;"&gt;:&lt;span style="color:#a31515;"&gt;XamDataGrid&lt;span style="color:#ff0000;"&gt; Name&lt;span style="color:#0000ff;"&gt;=&amp;quot;xamDataGrid1&amp;quot;&lt;span style="color:#ff0000;"&gt; DataContext&lt;span style="color:#0000ff;"&gt;=&amp;quot;&lt;span style="color:#000000;"&gt;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Binding&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#000000;"&gt;}&lt;/span&gt;&amp;quot;&lt;span style="color:#ff0000;"&gt; DataSource&lt;span style="color:#0000ff;"&gt;=&amp;quot;&lt;span style="color:#000000;"&gt;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Binding&lt;span style="color:#ff0000;"&gt; Collection&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#000000;"&gt;}&lt;/span&gt;&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt; &lt;span style="color:#a31515;"&gt;            &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;span style="color:#a31515;"&gt;igDP&lt;span style="color:#0000ff;"&gt;:&lt;span style="color:#a31515;"&gt;XamDataGrid.FieldSettings&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt; &lt;span style="color:#a31515;"&gt;                &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;span style="color:#a31515;"&gt;igDP&lt;span style="color:#0000ff;"&gt;:&lt;span style="color:#a31515;"&gt;FieldSettings&lt;span style="color:#ff0000;"&gt; CellHeight&lt;span style="color:#0000ff;"&gt;=&amp;quot;60&amp;quot;&lt;span style="color:#ff0000;"&gt; CellWidth&lt;span style="color:#0000ff;"&gt;=&amp;quot;60&amp;quot;/&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt; &lt;span style="color:#a31515;"&gt;            &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;span style="color:#a31515;"&gt;igDP&lt;span style="color:#0000ff;"&gt;:&lt;span style="color:#a31515;"&gt;XamDataGrid.FieldSettings&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt; &lt;span style="color:#a31515;"&gt;        &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;span style="color:#a31515;"&gt;igDP&lt;span style="color:#0000ff;"&gt;:&lt;span style="color:#a31515;"&gt;XamDataGrid&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt; &lt;span style="color:#a31515;"&gt;        &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;span style="color:#a31515;"&gt;Button&lt;span style="color:#ff0000;"&gt; Content&lt;span style="color:#0000ff;"&gt;=&amp;quot;Export&amp;quot;&lt;span style="color:#ff0000;"&gt; Grid.Row&lt;span style="color:#0000ff;"&gt;=&amp;quot;1&amp;quot;&lt;span style="color:#ff0000;"&gt; Click&lt;span style="color:#0000ff;"&gt;=&amp;quot;Button_Click&amp;quot; /&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt; &lt;span style="color:#a31515;"&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;span style="color:#a31515;"&gt;Grid&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt; &lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/imageExcelExport1.png"&gt;&lt;img src="http://blogs.infragistics.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/imageExcelExport1.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2. Export the XamDataGrid&lt;/p&gt;

&lt;div style="color:black;overflow:auto;width:99.5%;"&gt;
&lt;pre style="margin:0em;"&gt;         &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt;&lt;span style="color:#000000;"&gt;  &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt;&lt;span style="color:#000000;"&gt;  Button_Click(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt;&lt;span style="color:#000000;"&gt;  sender, &lt;span style="color:#2b91af;"&gt;RoutedEventArgs&lt;/span&gt;&lt;span style="color:#000000;"&gt;  e)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;         &lt;span style="color:#000000;"&gt;{&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;             &lt;span style="color:#2b91af;"&gt;DataPresenterExcelExporter&lt;/span&gt;&lt;span style="color:#000000;"&gt;  exporter = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&lt;span style="color:#000000;"&gt;  &lt;span style="color:#2b91af;"&gt;DataPresenterExcelExporter&lt;/span&gt;&lt;span style="color:#000000;"&gt; ();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;             &lt;strong&gt;exporter.CellExported += &lt;/strong&gt;&lt;span style="color:#0000ff;"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;strong&gt;  &lt;/strong&gt;&lt;span style="color:#2b91af;"&gt;&lt;strong&gt;EventHandler&lt;/strong&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;strong&gt; &amp;lt;&lt;/strong&gt;&lt;span style="color:#2b91af;"&gt;&lt;strong&gt;CellExportedEventArgs&lt;/strong&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;strong&gt; &amp;gt;(exporter_CellExported);&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;             exporter.Export(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;&lt;span style="color:#000000;"&gt; .xamDataGrid1, file.FullName, &lt;span style="color:#2b91af;"&gt;WorkbookFormat&lt;/span&gt;&lt;span style="color:#000000;"&gt; .Excel2007);&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;         &lt;span style="color:#000000;"&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt; &lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;3. Export the Images from the Image Column :&lt;/p&gt;

&lt;div style="color:black;overflow:auto;width:99.5%;"&gt;
&lt;pre style="margin:0em;"&gt;         &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt;&lt;span style="color:#000000;"&gt;  &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt;&lt;span style="color:#000000;"&gt;  exporter_CellExported(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt;&lt;span style="color:#000000;"&gt;  sender, &lt;span style="color:#2b91af;"&gt;CellExportedEventArgs&lt;/span&gt;&lt;span style="color:#000000;"&gt;  e)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;         &lt;span style="color:#000000;"&gt;{&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;             &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt;&lt;span style="color:#000000;"&gt;  (e.Field.DataType == &lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;&lt;span style="color:#000000;"&gt; (&lt;span style="color:#2b91af;"&gt;ImageSource&lt;/span&gt;&lt;span style="color:#000000;"&gt; ))&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;             &lt;span style="color:#000000;"&gt;{&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;                 &lt;span style="color:#008000;"&gt;// currently exported cell&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;                 &lt;span style="color:#2b91af;"&gt;WorksheetCell&lt;/span&gt;&lt;span style="color:#000000;"&gt;  cell = e.CurrentWorksheet.Rows[e.CurrentRowIndex].Cells[e.CurrentColumnIndex];&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;                 &lt;span style="color:#2b91af;"&gt;WorksheetCell&lt;/span&gt;&lt;span style="color:#000000;"&gt;  diagonalCell = e.CurrentWorksheet.Rows[e.CurrentRowIndex + 1].Cells[e.CurrentColumnIndex + 1];&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;                 &lt;span style="color:#008000;"&gt;// current worksheet&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;                 &lt;span style="color:#2b91af;"&gt;Worksheet&lt;/span&gt;&lt;span style="color:#000000;"&gt;  sheet = e.CurrentWorksheet;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt; &lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;                 &lt;span style="color:#008000;"&gt;// 1. Create Image&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;                 &lt;span style="color:#008000;"&gt;// resolve your path image&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;                 &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;&lt;span style="color:#000000;"&gt;  imagePath = &lt;strong&gt;ResolveImagePathFromCellValue(e.Value)&lt;/strong&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;                 System.Drawing.&lt;span style="color:#2b91af;"&gt;Image&lt;/span&gt;&lt;span style="color:#000000;"&gt;  image = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&lt;span style="color:#000000;"&gt;  System.Drawing.&lt;span style="color:#2b91af;"&gt;Bitmap&lt;/span&gt;&lt;span style="color:#000000;"&gt; (imagePath);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;                 &lt;span style="color:#2b91af;"&gt;WorksheetImage&lt;/span&gt;&lt;span style="color:#000000;"&gt;  workImage = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&lt;span style="color:#000000;"&gt;  &lt;span style="color:#2b91af;"&gt;WorksheetImage&lt;/span&gt;&lt;span style="color:#000000;"&gt; ((image));&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt; &lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;                 &lt;span style="color:#008000;"&gt;// 2. Position the Image&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;                 workImage.TopLeftCornerCell = cell;                &lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;                 workImage.BottomRightCornerCell = diagonalCell;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt; &lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;                 &lt;span style="color:#008000;"&gt;// 3. Insert Image&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;                 sheet.Shapes.Add(workImage);&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;                 cell.Value = &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;&lt;span style="color:#000000;"&gt; ;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;             &lt;span style="color:#000000;"&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;         &lt;span style="color:#000000;"&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0em;"&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
 The ResolveImagePathFromCellValue() method depends on the way you have setup the image field in the XamDataGrid - via local path, embedded resource, stream, etc.
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Result&amp;nbsp;&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/export.png"&gt;&lt;img src="http://blogs.infragistics.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/export.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Full sample you can find here :&amp;nbsp;(Please visit the site to view this media)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=242829" width="1" height="1"&gt;</content><author><name>alfidanov</name><uri>http://www.infragistics.com/profile/MTQ4ODk=</uri></author><category term="Xamdatagrid Excel Export Image" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/Xamdatagrid+Excel+Export+Image/default.aspx" /><category term="Image export" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/Image+export/default.aspx" /><category term="Excel export" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/Excel+export/default.aspx" /></entry><entry><title>HowTo : Common headers in the XamDataGrid</title><link rel="alternate" type="text/html" href="/community/blogs/alex_fidanov/archive/2010/06/02/howto-common-headers-in-the-xamdatagrid.aspx" /><id>/community/blogs/alex_fidanov/archive/2010/06/02/howto-common-headers-in-the-xamdatagrid.aspx</id><published>2010-06-02T13:03:00Z</published><updated>2010-06-02T13:03:00Z</updated><content type="html">&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. Set the AutoGenerateFields and AutoArrangeCells properties of the 
FieldLayoutSettings to respectively False and Never:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;igDP:XamDataGrid.FieldLayoutSettings&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;lt;igDP:FieldLayoutSettings &lt;strong&gt;AutoGenerateFields=&amp;quot;False&amp;quot; AutoArrangeCells=&amp;quot;Never&amp;quot; &lt;/strong&gt;
/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/igDP:XamDataGrid.FieldLayoutSettings&amp;gt; 
&lt;/p&gt;
&lt;p&gt;2. Define the FieldLayout and explicitly position each field, by setting the 
Row, RowSpan, Column, ColumnSpan properties : 
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;igDP:XamDataGrid.FieldLayouts&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;lt;igDP:FieldLayout&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;strong&gt;igDP:UnboundField&lt;/strong&gt; 
Name=&amp;quot;Header&amp;quot; Label=&amp;quot;Person&amp;quot; &lt;strong&gt;Row=&amp;quot;0&amp;quot; Column=&amp;quot;0&amp;quot; 
ColumnSpan=&amp;quot;6&amp;quot;&lt;/strong&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;lt;igDP:UnboundField.Settings&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;lt;igDP:FieldSettings LabelTextAlignment=&amp;quot;Center&amp;quot; 
&lt;strong&gt;CellContentAlignment=&amp;quot;LabelOnly&amp;quot;&lt;/strong&gt;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;lt;/igDP:UnboundField.Settings&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;lt;/&lt;strong&gt;igDP:UnboundField&lt;/strong&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;igDP:Field 
Name=&amp;quot;FirstName&amp;quot; Label=&amp;quot;First Name&amp;quot; Row=&amp;quot;1&amp;quot; 
Column=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;igDP:Field Name=&amp;quot;LastName&amp;quot; 
Label=&amp;quot;Last Name&amp;quot; Row=&amp;quot;1&amp;quot; Column=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;igDP:Field 
Name=&amp;quot;Email&amp;quot; Row=&amp;quot;1&amp;quot; Column=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;igDP:Field 
Name=&amp;quot;Age&amp;quot; Row=&amp;quot;1&amp;quot; Column=&amp;quot;3&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;igDP:Field 
Name=&amp;quot;BirthDay&amp;quot; Row=&amp;quot;1&amp;quot; Column=&amp;quot;4&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;igDP:Field 
Name=&amp;quot;Gender&amp;quot; Row=&amp;quot;1&amp;quot; Column=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;igDP:Field 
Name=&amp;quot;Interests&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;lt;/igDP:FieldLayout&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/igDP:XamDataGrid.FieldLayouts&amp;gt; 
&lt;/p&gt;
&lt;p&gt;3. Set the &lt;strong&gt;CellContentAlignment &lt;/strong&gt;to &lt;strong&gt;LabelOnly &lt;/strong&gt;as this Field has only header 
representation purposes.&lt;/p&gt;
&lt;p&gt;The goal:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/excelHeader.png"&gt;&lt;img src="http://blogs.infragistics.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/excelHeader.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The result:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/design.png"&gt;&lt;img src="http://blogs.infragistics.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/design.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The working sample :&amp;nbsp;(Please visit the site to view this media)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=233352" width="1" height="1"&gt;</content><author><name>alfidanov</name><uri>http://www.infragistics.com/profile/MTQ4ODk=</uri></author><category term="header span" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/header+span/default.aspx" /><category term="Excel headers" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/Excel+headers/default.aspx" /><category term="common header" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/common+header/default.aspx" /><category term="cell span" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/cell+span/default.aspx" /><category term="cell header span" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/cell+header+span/default.aspx" /></entry><entry><title>Visual Studio code snippets for creating fast and easy data sources</title><link rel="alternate" type="text/html" href="/community/blogs/alex_fidanov/archive/2010/05/31/visual-studio-code-snippets-for-creating-fast-and-easy-data-sources.aspx" /><id>/community/blogs/alex_fidanov/archive/2010/05/31/visual-studio-code-snippets-for-creating-fast-and-easy-data-sources.aspx</id><published>2010-05-31T12:35:00Z</published><updated>2010-05-31T12:35:00Z</updated><content type="html">&lt;p&gt;If you have to reuse the same code over and over again in different projects, the Visual Studio provides a nice feature for this - &amp;quot;IntelliSense Code Snippets&amp;quot;. 
&lt;br /&gt;
For example, as you all know, you can create a constructor for a class by typing &amp;quot;ctor&amp;quot; inside that class&amp;nbsp;&lt;br /&gt;
&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/ctor.png"&gt;&lt;img border="0" src="http://blogs.infragistics.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/ctor.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/ctor.png"&gt;&lt;/a&gt;&amp;nbsp;This is a pretty simple code snippet, but you can expand it and create more complex ones and reuse this code within few key strokes. 
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family:&amp;#39;Microsoft Sans Serif&amp;#39;;font-size:large;"&gt;How to make them :&lt;/span&gt; 
&lt;br /&gt;
&lt;br /&gt;1. Add a new File in the Visual Studio : 
&lt;br /&gt;
&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/addNew.png"&gt;&lt;img border="0" src="http://blogs.infragistics.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/addNew.png" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;2. Choose an XML File and&amp;nbsp;save it as a .snippet file 
&lt;br /&gt;
&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/xmlSnip.png"&gt;&lt;img border="0" src="http://blogs.infragistics.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/xmlSnip.png" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;4. Fill the minimum required fields for a code snippet 
&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xml&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;version&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;1.0&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;encoding&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;utf-8&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;?&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;CodeSnippets&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;CodeSnippet&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;Format&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;1.0.0&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Header&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Header&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Snippet&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Snippet&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;CodeSnippet&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;CodeSnippets&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;5. Build on and create your own code snippet&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms165392(VS.80).aspx" target="_blank"&gt;Creating and Using IntelliSense Code Snippets&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;Microsoft Sans Serif&amp;#39;;font-size:large;"&gt;How to install them :&lt;/span&gt; 
&lt;br /&gt;
&lt;br /&gt;All you need to do is copy then to your Visual Studio Code Snippets folder.It should look like this :
&lt;br /&gt; &lt;span style="text-decoration:underline;"&gt;&amp;lt;drive&amp;gt;:\&amp;lt;user&amp;gt;\Documents\Visual Studio 2010\Code Snippets\Visual C#\My Code Snippets&lt;/span&gt; 
&lt;br /&gt;or : 
&lt;br /&gt;&lt;span style="text-decoration:underline;"&gt;&amp;lt;drive&amp;gt;:\Program Files (x86)\Microsoft Visual Studio X.0\VC#\Snippets\1033\Visual C#&lt;/span&gt; 
&lt;br /&gt;A small pack with some frequently used code snippets (C#) you can find here : (Please visit the site to view this media).&lt;/p&gt;
&lt;p&gt;Edit (9/3/2010) Updated Person class with a boolean property and System.Text namespace&amp;nbsp;(Please visit the site to view this media)&lt;br /&gt;
&lt;br /&gt;1. Dependency Property 
&lt;br /&gt;
&lt;br /&gt;2. Attached Dependency Property 
&lt;br /&gt;
&lt;br /&gt;3. INotifyPropertyChanged implementation 
&lt;br /&gt;
&lt;br /&gt;4. Property with INotifyPropertyChanged 
&lt;br /&gt;
&lt;br /&gt;5. Test class with hierarchical data 
&lt;br /&gt;
&lt;br /&gt;6. Test class with different data types&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=232942" width="1" height="1"&gt;</content><author><name>alfidanov</name><uri>http://www.infragistics.com/profile/MTQ4ODk=</uri></author></entry><entry><title>Displaying Selection Count by Implementing Custom Summary Calculators</title><link rel="alternate" type="text/html" href="/community/blogs/alex_fidanov/archive/2010/04/29/displaying-selection-count-by-implementing-custom-summary-calculators.aspx" /><id>/community/blogs/alex_fidanov/archive/2010/04/29/displaying-selection-count-by-implementing-custom-summary-calculators.aspx</id><published>2010-04-29T08:34:00Z</published><updated>2010-04-29T08:34:00Z</updated><content type="html">&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; The XamDataGrid has five built-in summary calculators &amp;ndash; Sum, Average, Maximum, Minimum and Count. You can implement additional custom summary calculators by&amp;nbsp; inheriting the abstract &lt;strong&gt;SummaryCalculator&lt;/strong&gt; class. You can see a full walkthrough &lt;a href="http://help.infragistics.com/NetAdvantage/WPF/2010.1/CLR3.5/?page=xamDataPresenter_Creating_a_Custom_Summary_Calculator.html" target="_blank"&gt;here&lt;/a&gt; in o ur help. You can take advantage of this feature and implement functionality that is not related to the XamDataGrid&amp;rsquo;s data in an efficient way. For example, you can display the selected records or cells as a summary. The sample project for this blog post you can find here &amp;nbsp;(Please visit the site to view this media)&amp;nbsp;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/selectedRecords.png"&gt;&lt;img src="http://blogs.infragistics.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/selectedRecords.png" border="0" width="466" height="238" alt="" /&gt;&lt;/a&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/selectedCells.png"&gt;&lt;img src="http://blogs.infragistics.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/selectedCells.png" border="0" width="466" height="238" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Implementing this is fairly straightforward following the walkthrough&lt;/p&gt;
&lt;blockquote&gt;
&lt;p style="margin:0px;font-family:courier new;background:white;color:black;font-size:10pt;"&gt;&lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;SelectedRecordsCalculator&lt;/span&gt; : &lt;span style="color:#2b91af;"&gt;SummaryCalculator&lt;br /&gt;&lt;/span&gt;{&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style="margin:0px;font-family:courier new;background:white;color:black;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; _count = 0;&lt;/p&gt;
&lt;p style="margin:0px;font-family:courier new;background:white;color:black;font-size:10pt;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public&lt;/span&gt; &lt;span style="color:blue;"&gt;override&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; Aggregate(&lt;span style="color:blue;"&gt;object&lt;/span&gt; dataValue, &lt;span style="color:#2b91af;"&gt;SummaryResult&lt;/span&gt; summaryResult, &lt;span style="color:#2b91af;"&gt;Record&lt;/span&gt; record)&lt;/p&gt;
&lt;p style="margin:0px;font-family:courier new;background:white;color:black;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin:0px;font-family:courier new;background:white;color:black;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (record.IsSelected)&lt;/p&gt;
&lt;p style="margin:0px;font-family:courier new;background:white;color:black;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin:0px;font-family:courier new;background:white;color:black;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _count++;&lt;/p&gt;
&lt;p style="margin:0px;font-family:courier new;background:white;color:black;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;font-family:courier new;background:white;color:black;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;/p&gt;
&lt;div style="font-family:courier new;background:white;color:black;font-size:10pt;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public&lt;/span&gt; &lt;span style="color:blue;"&gt;override&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; BeginCalculation(&lt;span style="color:#2b91af;"&gt;SummaryResult&lt;/span&gt; summaryResult)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _count = 0;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;/div&gt;
&lt;p style="margin:0px;font-family:courier new;background:white;color:black;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;&lt;br /&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public&lt;/span&gt; &lt;span style="color:blue;"&gt;override&lt;/span&gt; &lt;span style="color:blue;"&gt;object&lt;/span&gt; EndCalculation(&lt;span style="color:#2b91af;"&gt;SummaryResult&lt;/span&gt; summaryResult)&lt;/p&gt;
&lt;p style="margin:0px;font-family:courier new;background:white;color:black;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin:0px;font-family:courier new;background:white;color:black;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;return&lt;/span&gt; _count;&lt;/p&gt;
&lt;p style="margin:0px;font-family:courier new;background:white;color:black;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;font-family:courier new;background:white;color:black;font-size:10pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Question : So, why not just get the count from the SelectedItems collection?&lt;/p&gt;
&lt;p&gt;Answer : Because, you will not be able to get this:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/selectedRecordsGroups.png"&gt;&lt;img src="http://blogs.infragistics.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/selectedRecordsGroups.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=228520" width="1" height="1"&gt;</content><author><name>alfidanov</name><uri>http://www.infragistics.com/profile/MTQ4ODk=</uri></author></entry><entry><title>Tetris Mode</title><link rel="alternate" type="text/html" href="/community/blogs/alex_fidanov/archive/2010/04/12/tetris-mode.aspx" /><id>/community/blogs/alex_fidanov/archive/2010/04/12/tetris-mode.aspx</id><published>2010-04-12T13:14:00Z</published><updated>2010-04-12T13:14:00Z</updated><content type="html">&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;The
XamDataGrid is a great control that has all the most daily used functionalities
like Sorting, Grouping, Filtering, Data Value History, etc.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt; It gives you full
control over conditional formatting and data management, great performance and responsiveness in updating data so why not have some fun
with it and put it into (Please visit the site to view this media)&amp;nbsp;and break some lines of squares.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/tetris_5F00_game.png"&gt;&lt;img src="http://blogs.infragistics.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/tetris_5F00_game.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=226427" width="1" height="1"&gt;</content><author><name>alfidanov</name><uri>http://www.infragistics.com/profile/MTQ4ODk=</uri></author></entry><entry><title>Josh Smith's ListViewDragDropManager for  XamDataGrid</title><link rel="alternate" type="text/html" href="/community/blogs/alex_fidanov/archive/2010/03/23/josh-smith-s-listviewdragdropmanager-for-xamdatagrid.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="37844" href="http://www.infragistics.com/community/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.22.39.83/ListViewDragDropManagerDemo.zip" /><id>/community/blogs/alex_fidanov/archive/2010/03/23/josh-smith-s-listviewdragdropmanager-for-xamdatagrid.aspx</id><published>2010-03-23T09:41:00Z</published><updated>2010-03-23T09:41:00Z</updated><content type="html">&lt;p&gt;I am not going to invent the wheel. &lt;a href="http://www.codeproject.com/KB/WPF/ListViewDragDropManager.aspx" target="_blank"&gt;Josh Smith already did&lt;/a&gt;. I am just going to make it fit another car - the XamDataGrid.&lt;/p&gt;
&lt;p&gt;As Josh says, the code is fairly complex to be explained (It just works) so please refer to his article for more information on the code.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/screenshot.png"&gt;&lt;img border="0" src="http://blogs.infragistics.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/screenshot.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I added one little new feature - a thin Line indicating between which records you are about to drop the dragged item. Also, I made some code changes here and there to make it work smoother with the XamDataGrid.&lt;/p&gt;
&lt;p&gt;The sample you can find in the attachments.&lt;/p&gt;
&lt;p&gt;Enjoy.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Edit : The project for VS2008 you can find here : (Please visit the site to view this media).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=223983" width="1" height="1"&gt;</content><author><name>alfidanov</name><uri>http://www.infragistics.com/profile/MTQ4ODk=</uri></author></entry><entry><title>Commit changes when the value of editor changes</title><link rel="alternate" type="text/html" href="/community/blogs/alex_fidanov/archive/2010/03/12/commit-changes-when-the-value-of-editor-changes.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="12990" href="http://www.infragistics.com/community/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.22.28.22/XamDataGrid_5F00_ValueChanged.zip" /><id>/community/blogs/alex_fidanov/archive/2010/03/12/commit-changes-when-the-value-of-editor-changes.aspx</id><published>2010-03-12T14:29:00Z</published><updated>2010-03-12T14:29:00Z</updated><content type="html">&lt;p&gt;All of the ValueEditors that are used inside or outside the XamDataGrid by default have two modes - in EditMode and out of EditMode. The values are not committed until the value editor has ended its edit mode. When the value editors are embedded in the XamDataGrid they end edit mode when they lose focus or when the enter key is pressed.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you want this value to be&amp;nbsp;committed&amp;nbsp;when the value is changed, then you have to handle the ValueChanged event of the value editor and for the editor to end edit mode. You can do this by calling the EndEditMode(...) method.&lt;/p&gt;
&lt;p&gt;Subscribing to the ValueChanged event you can do with the EventManager class, like this:&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;EventManager&lt;/span&gt;.RegisterClassHandler(&lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;ValueEditor&lt;/span&gt;),&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;ValueEditor&lt;/span&gt;.ValueChangedEvent,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;RoutedPropertyChangedEventHandler&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;object&lt;/span&gt;&amp;gt;(OnValueChanged));&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;This will be only applicable for editors like XamComboEditor, XamCheckEditor or XamDateTimeEditor.&lt;/p&gt;
&lt;p&gt;You would not have to apply this to the rest of the editors as this will exit the EditMode each time you press a key:&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;void&lt;/span&gt; OnValueChanged(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, &lt;span style="color:#2b91af;"&gt;RoutedPropertyChangedEventArgs&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;object&lt;/span&gt;&amp;gt; e)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (sender &lt;span style="color:blue;"&gt;is&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;XamComboEditor&lt;/span&gt; || sender &lt;span style="color:blue;"&gt;is&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;XamCheckEditor&lt;/span&gt; || sender &lt;span style="color:blue;"&gt;is&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;XamDateTimeEditor&lt;/span&gt;)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; (sender &lt;span style="color:blue;"&gt;as&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ValueEditor&lt;/span&gt;).EndEditMode(&lt;span style="color:blue;"&gt;true&lt;/span&gt;, &lt;span style="color:blue;"&gt;true&lt;/span&gt;);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;In the attachments you can find the full source code.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=222822" width="1" height="1"&gt;</content><author><name>alfidanov</name><uri>http://www.infragistics.com/profile/MTQ4ODk=</uri></author><category term="XamDataGrid" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/XamDataGrid/default.aspx" /><category term="ValueEditor" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/ValueEditor/default.aspx" /><category term="Commit" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/Commit/default.aspx" /><category term="Value" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/Value/default.aspx" /><category term="ValueChanged" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/ValueChanged/default.aspx" /><category term="Change" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/Change/default.aspx" /></entry><entry><title>Setting GroupByRecordPresenter's Background</title><link rel="alternate" type="text/html" href="/community/blogs/alex_fidanov/archive/2010/02/09/setting-groupbyrecordpresenter-s-background.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="11817" href="http://www.infragistics.com/community/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.21.89.29/BackgroundInGroupBy.zip" /><id>/community/blogs/alex_fidanov/archive/2010/02/09/setting-groupbyrecordpresenter-s-background.aspx</id><published>2010-02-09T12:28:00Z</published><updated>2010-02-09T12:28:00Z</updated><content type="html">&lt;p&gt;&lt;strong&gt;&lt;span&gt;&lt;span style="font-family:mceinline;"&gt;Why is not the background of the GroupByRecordPresenter now changing when I set its Background property?&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;This is because the Background of the Record Content Site (where the description is) of the GroupByRecordPresenter is bound to the current theme&amp;#39;s LabelBackground brush with the following binding :&amp;nbsp;Background=&amp;quot;{DynamicResource {ComponentResourceKey {x:Type igDP:XamDataGrid}, LabelBackground}}&amp;quot;. Only the area underneath the record selector is bound to the Background property of the GroupByRecordPresenter.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Default&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/default.jpg"&gt;&lt;img border="0" src="http://blogs.infragistics.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/default.jpg" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If the theme changes, the Background of the Record content site will change accordingly:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Theme&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/theme.jpg"&gt;&lt;img border="0" src="http://blogs.infragistics.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/theme.jpg" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;However, if you do not want to use a theme, but you want to be able to change the Background of the GroupByRecordPresenter the same way the Theme changes it, you have to retemplate it and change the binding expression that the GroupByRecordPresenter is using for the background color:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Custom&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/custom.jpg"&gt;&lt;img border="0" src="http://blogs.infragistics.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/custom.jpg" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The full style for the GroupByRecordPresenter you can find in the project attached to this blog post.&lt;/p&gt;
&lt;p&gt;Please note that this samples uses volume 9.2 &amp;nbsp;The GroupByRecordPresenter style for older versions, for example volume 9.1, is different and will have to be taken from the &lt;strong&gt;DefaultStyles &lt;/strong&gt;directory (~\Program Files (x86)\Infragistics\NetAdvantage for .NET 2009.1\WPF\DefaultStyles).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=218929" width="1" height="1"&gt;</content><author><name>alfidanov</name><uri>http://www.infragistics.com/profile/MTQ4ODk=</uri></author><category term="Background group by record" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/Background+group+by+record/default.aspx" /><category term="GroupByRecordPresenter" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/GroupByRecordPresenter/default.aspx" /></entry><entry><title>HOWTO: Using WPF Converters to style the XamDataGrid</title><link rel="alternate" type="text/html" href="/community/blogs/alex_fidanov/archive/2010/01/12/howto-using-wpf-converters-to-style-the-xamdatagrid.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="19162" href="http://www.infragistics.com/community/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.21.29.55/DynamicStyling.zip" /><id>/community/blogs/alex_fidanov/archive/2010/01/12/howto-using-wpf-converters-to-style-the-xamdatagrid.aspx</id><published>2010-01-12T08:15:00Z</published><updated>2010-01-12T08:15:00Z</updated><content type="html">&lt;p&gt;There have been a lot of forums posts and questions about how to use Converters and how to bind them to the a cell, multiple cells, or something else.&lt;/p&gt;
&lt;p&gt;I have tried to summarize all of these requirements in one place and would be happy to update the sample project on your feedback.&lt;/p&gt;
&lt;p&gt;How &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx" target="_blank"&gt;WPF Value Converters&lt;/a&gt; work : they are classes (that implement IValueConverter or IMultiValueConverter interfaces) that provide the ability (custom logic) to convert value(s) of one type to another and vice versa. They can also be used to convert values of the same type, but that is not really what they are meant to do. One really common case is to convert an integer value (for example the Age of a Person) to a Brush or a Color.&lt;/p&gt;
&lt;p&gt;The screenshot below covers couple of scenarios:&lt;/p&gt;
&lt;p&gt;1. Record Background formatting based on a cell&amp;#39;s value ( blue for male, red for female)&lt;/p&gt;
&lt;p&gt;2. Cell Background formatting based on the cell&amp;#39;s value (Probation field)&lt;/p&gt;
&lt;p&gt;3. Advanced Cell formatting based on the cell&amp;#39;s value (Age field)&lt;/p&gt;
&lt;p&gt;4. Formatting based on multiple cells&amp;#39; values (Salary field)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/screenStyles-_2D00_-Copy.jpg"&gt;&lt;img border="0" src="http://blogs.infragistics.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/screenStyles-_2D00_-Copy.jpg" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For example :&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;public class AgeToBrushConverter :&lt;strong&gt; IValueConverter&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (value == null)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return Binding.DoNothing;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;if (value is int)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int temp = (int)value;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;strong&gt; &amp;nbsp;if (temp &amp;lt; 0)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return Brushes.Red;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (temp &amp;gt; 0 &amp;amp;&amp;amp; temp &amp;lt;= 10)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return Brushes.Black;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (temp &amp;gt; 10 &amp;amp;&amp;amp; temp &amp;lt;= 15)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return Brushes.Blue;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (temp &amp;gt; 15)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return Brushes.DarkGreen;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return Binding.DoNothing;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&amp;nbsp;throw new NotImplementedException();&amp;nbsp;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You can find the full sample and source code with comments in the attachments of this blog post.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=212955" width="1" height="1"&gt;</content><author><name>alfidanov</name><uri>http://www.infragistics.com/profile/MTQ4ODk=</uri></author><category term="XamDataGrid" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/XamDataGrid/default.aspx" /><category term="CellValuePresenter" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/CellValuePresenter/default.aspx" /><category term="IValueConverter" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/IValueConverter/default.aspx" /><category term="Conditional Formatting" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/Conditional+Formatting/default.aspx" /></entry><entry><title>Add-New-Record for any type of collection bound to the XamDataGrid</title><link rel="alternate" type="text/html" href="/community/blogs/alex_fidanov/archive/2009/11/23/add-new-record-for-any-type-of-collection-bound-to-the-xamdatagrid.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="12173" href="http://www.infragistics.com/community/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.20.06.95/CustomAddNewRecord.zip" /><id>/community/blogs/alex_fidanov/archive/2009/11/23/add-new-record-for-any-type-of-collection-bound-to-the-xamdatagrid.aspx</id><published>2009-11-23T21:09:00Z</published><updated>2009-11-23T21:09:00Z</updated><content type="html">&lt;p&gt;Currently, the &lt;strong&gt;XamDataGrid &lt;/strong&gt;supports the &lt;strong&gt;AddNewRecord &lt;/strong&gt;functionality for only collections which implement the&amp;nbsp;&lt;strong&gt;IBindingList &lt;/strong&gt;interface( like &lt;span style="text-decoration:underline;"&gt;BindingList&amp;lt;T&amp;gt;&lt;/span&gt; and &lt;span style="text-decoration:underline;"&gt;DataView&lt;/span&gt;). With couple of easy tricks and few lines of code, you can achieve a similar functionality for any collection:&lt;/p&gt;
&lt;p&gt;1. Distinguish between a normal record and the add record - use the Tag property.&lt;/p&gt;
&lt;p&gt;2. Fix the Add New Record so that it looks like the real one - use IsFixed property.&lt;/p&gt;
&lt;p&gt;3. Commit the Add New Record - DataPresenterCommands.CommitChangesToActiveRecord.&lt;/p&gt;
&lt;p&gt;4. Restyle the Add New Record - Styles for the DataRecordCellArea &amp;amp; RecordSelector.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/AddNewRecord.jpg"&gt;&lt;img src="http://blogs.infragistics.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/AddNewRecord.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You can find a full sample in the attachments of this blog post.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="text-decoration:underline;"&gt;Known possible drawbacks :&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;1. One extra blank record is present in the data source at all times ( as the built-in functionality creates this record once you have started data input in the add record).&lt;/p&gt;
&lt;p&gt;2. The implementation for hierarchical data structure is left out for your exercise.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=200695" width="1" height="1"&gt;</content><author><name>alfidanov</name><uri>http://www.infragistics.com/profile/MTQ4ODk=</uri></author></entry><entry><title>Customizing XamDockManager's Floating Panes</title><link rel="alternate" type="text/html" href="/community/blogs/alex_fidanov/archive/2009/11/10/customizing-xamdockmanager-s-floating-panes.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="14563" href="http://www.infragistics.com/community/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.18.66.93/CustomizableFloatingPane.zip" /><id>/community/blogs/alex_fidanov/archive/2009/11/10/customizing-xamdockmanager-s-floating-panes.aspx</id><published>2009-11-10T18:46:00Z</published><updated>2009-11-10T18:46:00Z</updated><content type="html">&lt;p&gt;Many have asked the question - &amp;quot;What do I need to customize the Floating pane and specifically how to remove the border?&amp;quot;. There are two main things you need to do to achieve that:&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;1. Set the&amp;nbsp;&lt;/span&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;UseOSNonClientArea &lt;/span&gt;&lt;/strong&gt;&lt;span style="text-decoration:underline;"&gt;property of the ToolWindow to false.&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;You can do that in the &lt;strong&gt;ToolWindowLoaded &lt;/strong&gt;event of the XamDockManager like this:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;void OnToolWindowLoaded(object sender, Infragistics.Windows.DockManager.Events.PaneToolWindowEventArgs e)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PaneToolWindow window = e.Window;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;window.UseOSNonClientArea = false;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;2. Create a new Template for the ToolWindow and set it.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Custom borderless control template for the ToolWindow:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;ControlTemplate TargetType=&amp;quot;{x:Type igDock:PaneToolWindow}&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Border Background=&amp;quot;{TemplateBinding Background}&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BorderBrush=&amp;quot;{TemplateBinding BorderBrush}&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BorderThickness=&amp;quot;{TemplateBinding BorderThickness}&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Grid&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Grid.RowDefinitions&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;RowDefinition Height=&amp;quot;Auto&amp;quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;RowDefinition/&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/Grid.RowDefinitions&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;DockPanel Grid.Row=&amp;quot;0&amp;quot; &amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;ContentPresenter Content=&amp;quot;{TemplateBinding Title}&amp;quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/DockPanel&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;ContentPresenter Content=&amp;quot;{TemplateBinding Content}&amp;quot;&amp;nbsp;Grid.Row=&amp;quot;1&amp;quot;/&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/Grid&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/Border&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/ControlTemplate&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;3. Drag-Move &amp;amp; Docking functionalities:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;As we have completely retemplated the ToolWindow, these functionalities will be lost. You can write your own implementations for them. In the attachment section of this blog post you can find a sample project with very simple ways of doing so.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=186693" width="1" height="1"&gt;</content><author><name>alfidanov</name><uri>http://www.infragistics.com/profile/MTQ4ODk=</uri></author></entry><entry><title>How to Rename the TabItems of the XamTabControl runtime like Excel</title><link rel="alternate" type="text/html" href="/community/blogs/alex_fidanov/archive/2009/10/01/how-to-rename-the-tabitems-of-the-xamtabcontrol-runtime-like-excel.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="9727" href="http://www.infragistics.com/community/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.17.74.19/RenamingTabItems.zip" /><id>/community/blogs/alex_fidanov/archive/2009/10/01/how-to-rename-the-tabitems-of-the-xamtabcontrol-runtime-like-excel.aspx</id><published>2009-10-01T14:14:00Z</published><updated>2009-10-01T14:14:00Z</updated><content type="html">&lt;p&gt;Excel-like renaming of the Sheets is a cool feature on a TabControl.&lt;/p&gt;
&lt;p&gt;You can implement this with the XamTabControl really fast and easy. Here are the steps how to do this:&lt;/p&gt;
&lt;p&gt;1. Retemplate the TabItemEx element and replace the ContentPresenter with a XamTextEditor. The XamTextEditor is handy in this scenario as it has cancelable events which will prevent the editor in entering edit mode if the user is single-clicking. It will only enter edit mode if the user double-clicks.&lt;/p&gt;
&lt;p&gt;2. EditModeStarting event and cancel it if it is a Single click action.&lt;/p&gt;
&lt;p&gt;You can find the project in the attachments of this blog post.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=177419" width="1" height="1"&gt;</content><author><name>alfidanov</name><uri>http://www.infragistics.com/profile/MTQ4ODk=</uri></author><category term="Excel" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/Excel/default.aspx" /><category term="XamTabControl" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/XamTabControl/default.aspx" /><category term="TabItemEx" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/TabItemEx/default.aspx" /><category term="Rename" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/Rename/default.aspx" /></entry><entry><title>Drag &amp; Drop with DataPresenter family controls</title><link rel="alternate" type="text/html" href="/community/blogs/alex_fidanov/archive/2009/07/28/drag-amp-drop-with-datapresenter-family-controls.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="537713" href="http://www.infragistics.com/community/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.12.84.01/XamDataGrid_5F00_DragAndDrop.zip" /><id>/community/blogs/alex_fidanov/archive/2009/07/28/drag-amp-drop-with-datapresenter-family-controls.aspx</id><published>2009-07-28T07:24:00Z</published><updated>2009-07-28T07:24:00Z</updated><content type="html">&lt;p&gt;This is a sample implementation how to Drag and Drop DataRecord for controls from the DataPresenter family controls - XamDataPresenter, XamDataGrid, XamDataCarousel.&amp;nbsp;The sample uses the standard WPF events for drag-drop. The Drag&amp;amp;Drop preview is displayed in the Adorner layer.&lt;/p&gt;
&lt;p&gt;To enable drag-drop functionality, first you need to allow it, by setting the AllowDrop property of the element that you wish to drop over. The Drag begins by calling the&amp;nbsp;DragDrop.DoDragDrop(...) method and passing the drag source element, the data being dragged (an instance of DataObject class) and DragDropEffects.&lt;/p&gt;
&lt;p&gt;When the dragging has started, you can display a preview of the element being dragged (in this case a DataRecordPresenter) in the Adorner layer. The easiest way to do this is using a VisualBrush to pait an area (for example a Rectangle) with the DataRecordPresenter.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://forums.infragistics.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/screen_5F00_Shot.jpg"&gt;&lt;img src="http://forums.infragistics.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/alex_5F00_fidanov/screen_5F00_Shot.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For anyone who wants more information on how the Drag-Drop works from start to end, you can take a look at this great article on this &lt;a target="_blank" href="http://blogs.msdn.com/jaimer/archive/2007/07/12/drag-drop-in-wpf-explained-end-to-end.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The full sample you can find in the attachments of this blog post.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.infragistics.com/community/aggbug.aspx?PostID=128401" width="1" height="1"&gt;</content><author><name>alfidanov</name><uri>http://www.infragistics.com/profile/MTQ4ODk=</uri></author><category term="XamDataGrid" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/XamDataGrid/default.aspx" /><category term="XamDataCarousel" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/XamDataCarousel/default.aspx" /><category term="Drop" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/Drop/default.aspx" /><category term="Drag" scheme="http://www.infragistics.com/community/blogs/alex_fidanov/archive/tags/Drag/default.aspx" /></entry></feed>