<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" 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:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0">
  <channel>
    <title>Yogesh Jagota's Personal Blog</title>
    <description>small c# code snippets and free code libraries</description>
    <link>http://yogesh.jagotagroup.com/blog/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.4.5.0</generator>
    <language>en-GB</language>
    <blogChannel:blogRoll>http://yogesh.jagotagroup.com/blog/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>Yogesh Jagota</dc:creator>
    <dc:title>Yogesh Jagota's Personal Blog</dc:title>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/yjpersonalblog" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <title>Excel Xml Library 3.35 released</title>
      <description>&lt;h2&gt;Changes:&lt;/h2&gt;
&lt;ul&gt;
	&lt;li&gt;
	&lt;p&gt;
	Added Guid cell content type.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Now GetValue converts almost everything to string type including the newly added Guid cell content type.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Fixed SetHeader &amp;amp; SetFooter where empty strings caused issues.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Fixed error with the new IsRawContent property.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Fixed error with DisplayFormatType.Time output.
	&lt;/p&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
For a full brief list of features, &lt;a href="http://yogesh.jagotagroup.com/blog/page/Excel-Xml-Library.aspx" title="look here"&gt;look here&lt;/a&gt;. For a detailed feature set, download the documentation from the page mentioned.
&lt;/p&gt;
&lt;h2&gt;Downloads&lt;/h2&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://yogesh.jagotagroup.com/blog/file.axd?file=Documentation.zip"&gt;Full Documentation 3.06 (282 KB)&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://yogesh.jagotagroup.com/blog/file.axd?file=Yogesh.Extensions.zip"&gt;Library DLLs v3.35 for .Net 2.0/3.0/3.5 (43.2 KB)&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://yogesh.jagotagroup.com/blog/file.axd?file=ExcelXml.zip"&gt;ExcelXml Library Source v3.06 (985 KB)&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://yogesh.jagotagroup.com/blog/file.axd?file=Extensions.zip"&gt;Extensions Library Source v3.06 (103 KB)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://yogesh.jagotagroup.com/blog/post/2008/11/26/Excel-Xml-Library-335-released.aspx&amp;amp;title=Excel Xml Library 3.35 released" target="_blank" title="Del.icio.us"&gt;&lt;img src="/blog//socialbookmarks/square/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://yogesh.jagotagroup.com/blog/post/2008/11/26/Excel-Xml-Library-335-released.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/blog//socialbookmarks/square/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://yogesh.jagotagroup.com/blog/post/2008/11/26/Excel-Xml-Library-335-released.aspx&amp;amp;title=Excel Xml Library 3.35 released" target="_blank" title="DZone It!"&gt;&lt;img src="/blog//socialbookmarks/square/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dotnetkicks.com/kick/?url=http://yogesh.jagotagroup.com/blog/post/2008/11/26/Excel-Xml-Library-335-released.aspx" target="_blank" title="Kick it!"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://yogesh.jagotagroup.com/blog/post/2008/11/26/Excel-Xml-Library-335-released.aspx&amp;bgcolor=797167" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://yogesh.jagotagroup.com/blog/post/2008/11/26/Excel-Xml-Library-335-released.aspx</link>
      <author>justjammin.nospam@nospam.jagotagroup.com (Yogesh Jagota)</author>
      <comments>http://yogesh.jagotagroup.com/blog/post/2008/11/26/Excel-Xml-Library-335-released.aspx#comment</comments>
      <guid>http://yogesh.jagotagroup.com/blog/post.aspx?id=755af4de-3dbf-411a-9db2-bd657abfe28d</guid>
      <pubDate>Wed, 26 Nov 2008 09:54:00 +0600</pubDate>
      <category>Excel Xml Library</category>
      <dc:publisher>Yogesh Jagota</dc:publisher>
      <pingback:server>http://yogesh.jagotagroup.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://yogesh.jagotagroup.com/blog/post.aspx?id=755af4de-3dbf-411a-9db2-bd657abfe28d</pingback:target>
      <slash:comments>16</slash:comments>
      <trackback:ping>http://yogesh.jagotagroup.com/blog/trackback.axd?id=755af4de-3dbf-411a-9db2-bd657abfe28d</trackback:ping>
      <wfw:comment>http://yogesh.jagotagroup.com/blog/post/2008/11/26/Excel-Xml-Library-335-released.aspx#comment</wfw:comment>
      <wfw:commentRss>http://yogesh.jagotagroup.com/blog/syndication.axd?post=755af4de-3dbf-411a-9db2-bd657abfe28d</wfw:commentRss>
    </item>
    <item>
      <title>Excel Xml Library 3.29 released</title>
      <description>&lt;h2&gt;Code breaking changes:&lt;/h2&gt;
&lt;p&gt;
SetHeaderFooterMargin method in PrintOptions has been removed. Use HeaderMargin and FooterMargin properties instead.
&lt;/p&gt;
&lt;h2&gt;Changes:&lt;/h2&gt;
&lt;ul&gt;
	&lt;li&gt;
	&lt;p&gt;
	Added support for tab and comma delimited export.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Fixed error with Workbook&amp;#39;s Add(string sheetName) method, which added 2 sheets instead of one.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Fixed error in Worksheet&amp;#39;s ImportTable method where column Index was using 1 based index.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Fixed error where merged cells spaned across multiple lines caused a Table error in Excel.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Fixed error where DateTime values were saved in 12 hour format, but did not took AM/PM into account and always saved as AM.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Converted HeaderMargin and FooterMargin fields to properties and removed SetHeaderFooterMargin method.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Added Header and Footer string properties
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Added Multipart header &amp;amp; footer string helpers i.e. SetHeader and SetFooter.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Added support for print gridlines (EnableGridlines property).
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Reset many internal values to private &amp;amp; cleaned up project.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Added Currency display format.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Fixed error where GetValue was not retrieving decimal value.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Set the default display format of dates to GeneralDate.
	&lt;/p&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
For a full brief list of features, &lt;a href="http://yogesh.jagotagroup.com/blog/page/Excel-Xml-Library.aspx" title="look here"&gt;look here&lt;/a&gt;. For a detailed feature set, download the documentation from the page mentioned.
&lt;/p&gt;
&lt;h2&gt;Downloads&lt;/h2&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://yogesh.jagotagroup.com/blog/file.axd?file=Documentation.zip"&gt;Full Documentation 3.06 (282 KB)&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://yogesh.jagotagroup.com/blog/file.axd?file=Yogesh.Extensions.zip"&gt;Library DLLs v3.29 for .Net 2.0/3.0/3.5 (43.2 KB)&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://yogesh.jagotagroup.com/blog/file.axd?file=ExcelXml.zip"&gt;ExcelXml Library Source v3.06 (985 KB)&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://yogesh.jagotagroup.com/blog/file.axd?file=Extensions.zip"&gt;Extensions Library Source v3.06 (103 KB)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://yogesh.jagotagroup.com/blog/post/2008/11/13/Excel-Xml-Library-329-released.aspx&amp;amp;title=Excel Xml Library 3.29 released" target="_blank" title="Del.icio.us"&gt;&lt;img src="/blog//socialbookmarks/square/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://yogesh.jagotagroup.com/blog/post/2008/11/13/Excel-Xml-Library-329-released.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/blog//socialbookmarks/square/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://yogesh.jagotagroup.com/blog/post/2008/11/13/Excel-Xml-Library-329-released.aspx&amp;amp;title=Excel Xml Library 3.29 released" target="_blank" title="DZone It!"&gt;&lt;img src="/blog//socialbookmarks/square/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dotnetkicks.com/kick/?url=http://yogesh.jagotagroup.com/blog/post/2008/11/13/Excel-Xml-Library-329-released.aspx" target="_blank" title="Kick it!"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://yogesh.jagotagroup.com/blog/post/2008/11/13/Excel-Xml-Library-329-released.aspx&amp;bgcolor=797167" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://yogesh.jagotagroup.com/blog/post/2008/11/13/Excel-Xml-Library-329-released.aspx</link>
      <author>justjammin.nospam@nospam.jagotagroup.com (Yogesh Jagota)</author>
      <comments>http://yogesh.jagotagroup.com/blog/post/2008/11/13/Excel-Xml-Library-329-released.aspx#comment</comments>
      <guid>http://yogesh.jagotagroup.com/blog/post.aspx?id=79774df6-8b14-4fc9-81a9-9d447e086c3c</guid>
      <pubDate>Thu, 13 Nov 2008 15:27:00 +0600</pubDate>
      <category>Excel Xml Library</category>
      <dc:publisher>Yogesh Jagota</dc:publisher>
      <pingback:server>http://yogesh.jagotagroup.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://yogesh.jagotagroup.com/blog/post.aspx?id=79774df6-8b14-4fc9-81a9-9d447e086c3c</pingback:target>
      <slash:comments>8</slash:comments>
      <trackback:ping>http://yogesh.jagotagroup.com/blog/trackback.axd?id=79774df6-8b14-4fc9-81a9-9d447e086c3c</trackback:ping>
      <wfw:comment>http://yogesh.jagotagroup.com/blog/post/2008/11/13/Excel-Xml-Library-329-released.aspx#comment</wfw:comment>
      <wfw:commentRss>http://yogesh.jagotagroup.com/blog/syndication.axd?post=79774df6-8b14-4fc9-81a9-9d447e086c3c</wfw:commentRss>
    </item>
    <item>
      <title>Filtering WPF toolkit DataGrid</title>
      <description>&lt;p&gt;
As you all know that Microsoft WPF toolkit version 1.0 is now available for &lt;a href="http://www.codeplex.com/wpf" title="download"&gt;download&lt;/a&gt;. I was experimenting&amp;nbsp; with the new datagrid included in the toolkit and found it to be quite good. I searched a little and found three good blog posts about sorting the datagrid. They are:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.msdn.com/jgoldb/archive/2008/08/26/improving-microsoft-datagrid-ctp-sorting-performance.aspx" title="Improving Microsoft DataGrid CTP sorting performance Part I"&gt;Improving Microsoft DataGrid CTP sorting performance Part I&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.msdn.com/jgoldb/archive/2008/08/28/improving-microsoft-datagrid-ctp-sorting-performance-part-2.aspx" title="Improving Microsoft DataGrid CTP sorting performance Part II"&gt;Improving Microsoft DataGrid CTP sorting performance Part II&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.msdn.com/vinsibal/archive/2008/08/29/wpf-datagrid-tri-state-sorting-sample.aspx" title="WPF DataGrid: Tri-state Sorting sample"&gt;WPF DataGrid: Tri-state Sorting sample&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Refering to the above posts will be really useful for anybody who wants to custom sort the datagrid.
&lt;/p&gt;
&lt;p&gt;
Although I was able to find these good posts about sorting, I was not able to find any useful post about filtering the datagrid. After a little search I found a post titled &lt;a href="http://blogs.msdn.com/vinsibal/archive/2008/08/25/wpf-datagrid-sample-add-a-preview-tooltip-to-a-scrollviewer.aspx" title="WPF DataGrid sample: Add a preview ToolTip to a ScrollViewer"&gt;WPF DataGrid sample: Add a preview ToolTip to a ScrollViewer&lt;/a&gt;. In this post, Vincent Sibal replied to a comment saying that extended filter is possible using CollectionViewSource. Learning this, I thought of writing the sorting functionality into the datagrid by my own. Initially I was unsuccessful in implementing this functionality as I was using CollectionView, but later I succeeded when I switched to ListCollectionView. I don&amp;#39;t know if this a bug but I only tried my implementation with SubSonic and EF collections so CollectionView might not be working with only these two (although I cannot say this with confidence as I did not tried it with any other collection type).
&lt;/p&gt;
&lt;p&gt;
We will be using a textbox&amp;#39;s TextChanged method to filter the grid.
&lt;/p&gt;
&lt;p&gt;
Here is how it goes:
&lt;/p&gt;
&lt;p&gt;
First we declare the datagrid:&lt;br /&gt;
&lt;div class="code"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;toolkit:DataGrid&lt;/span&gt; &lt;span class="attr"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;="AreaDataGrid"&lt;/span&gt;  &lt;span class="attr"&gt;Margin&lt;/span&gt;&lt;span class="kwrd"&gt;="10,0,10,0"&lt;/span&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    &lt;span class="attr"&gt;IsSynchronizedWithCurrentItem&lt;/span&gt;&lt;span class="kwrd"&gt;="False"&lt;/span&gt; &lt;span class="attr"&gt;Grid&lt;/span&gt;.&lt;span class="attr"&gt;Row&lt;/span&gt;&lt;span class="kwrd"&gt;="1"&lt;/span&gt; &lt;span class="attr"&gt;Height&lt;/span&gt;&lt;span class="kwrd"&gt;="250"&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;="400"&lt;/span&gt; &lt;span class="attr"&gt;SelectionMode&lt;/span&gt;&lt;span class="kwrd"&gt;="Extended"&lt;/span&gt; &lt;span class="attr"&gt;AutoGenerateColumns&lt;/span&gt;&lt;span class="kwrd"&gt;="False"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    &lt;span class="attr"&gt;CanUserReorderColumns&lt;/span&gt;&lt;span class="kwrd"&gt;="False"&lt;/span&gt; &lt;span class="attr"&gt;GridLinesVisibility&lt;/span&gt;&lt;span class="kwrd"&gt;="None"&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    &lt;span class="attr"&gt;AlternationCount&lt;/span&gt;&lt;span class="kwrd"&gt;="2"&lt;/span&gt; &lt;span class="attr"&gt;CanUserResizeRows&lt;/span&gt;&lt;span class="kwrd"&gt;="False"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    &lt;span class="attr"&gt;ItemsSource&lt;/span&gt;&lt;span class="kwrd"&gt;="{Binding}"&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;toolkit:DataGrid.Columns&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;toolkit:DataGridTextColumn&lt;/span&gt; &lt;span class="attr"&gt;Header&lt;/span&gt;&lt;span class="kwrd"&gt;="Id"&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;="80"&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;            &lt;span class="attr"&gt;Binding&lt;/span&gt;&lt;span class="kwrd"&gt;="{Binding Id}"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;            &lt;span class="attr"&gt;IsReadOnly&lt;/span&gt;&lt;span class="kwrd"&gt;="True"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;toolkit:DataGridTextColumn&lt;/span&gt; &lt;span class="attr"&gt;Header&lt;/span&gt;&lt;span class="kwrd"&gt;="Name"&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;="200"&lt;/span&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;            &lt;span class="attr"&gt;Binding&lt;/span&gt;&lt;span class="kwrd"&gt;="{Binding Name}"&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;            &lt;span class="attr"&gt;IsReadOnly&lt;/span&gt;&lt;span class="kwrd"&gt;="True"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;toolkit:DataGrid.Columns&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;toolkit:DataGrid&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
Then we attach the collection with the datagrid in the Loaded method of the window:&lt;br /&gt;
&lt;div class="code"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="preproc"&gt;ListCollectionView&lt;/span&gt; dgcv = &lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="preproc"&gt;ListCollectionView&lt;/span&gt;(&lt;span class="kwrd"&gt;new&lt;/span&gt; AreaCollection().Load());&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;dgcv.Filter = SearchFilter;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;AreaDataGrid.ItemsSource = dgcv;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
Now we write the SearchFilter method which actually filters the collection:
&lt;/p&gt;
&lt;p&gt;
&lt;div class="code"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; SearchFilter(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender)&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;if&lt;/span&gt; (tbSearch == &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="rem"&gt;// tbSearch is the textbox which contains the&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="rem"&gt;// text to be filtered...&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;string&lt;/span&gt; search = tbSearch.Text;&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="rem"&gt;// convert the sent object to Area object...&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Area item = (Area)sender;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;if&lt;/span&gt; (!search.IsNullOrEmpty())&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;if&lt;/span&gt; (item.Id.ToString().StartsWith(search) ||&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; item.Name.StartsWith(search))&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;}&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
Finally in the TextChanged method of the text box which is used to filter the entries, we use this code:&lt;br /&gt;
&lt;div class="code"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;((&lt;span class="preproc"&gt;ListCollectionView&lt;/span&gt;)AreaDataGrid.ItemsSource).Refresh();&lt;/pre&gt;
&lt;/div&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
This is all we need to do. I am not explaining much as most of the code is self explanatory. I tested this way of filtering with 20000 records in the datagrid and found it to be quite fast enough to be used in production scenarios, although it&amp;#39;s real test will come when it will be used with more records.
&lt;/p&gt;
&lt;p&gt;
Hope this is helpful to people who need such a functionality to filter the datagrid. I will be posting more about DataGrid soon. 
&lt;/p&gt;
&lt;p&gt;
PS: The problem I found with CollectionView was that if I set a breakpoint in the TextChanged method and check the ItemsSource of the datagrid after &lt;code&gt;((ListCollectionView)AreaDataGrid.ItemsSource).Refresh();&lt;/code&gt;, I found that it
DID got filtered, but the corresponding changes do not reflect in the
datagrid. It still showed all the items in the datagrid. Changing to ListCollectionView sorted out this issue.
&lt;/p&gt;
&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://yogesh.jagotagroup.com/blog/post/2008/11/01/Filtering-WPF-toolkit-DataGrid.aspx&amp;amp;title=Filtering WPF toolkit DataGrid" target="_blank" title="Del.icio.us"&gt;&lt;img src="/blog//socialbookmarks/square/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://yogesh.jagotagroup.com/blog/post/2008/11/01/Filtering-WPF-toolkit-DataGrid.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/blog//socialbookmarks/square/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://yogesh.jagotagroup.com/blog/post/2008/11/01/Filtering-WPF-toolkit-DataGrid.aspx&amp;amp;title=Filtering WPF toolkit DataGrid" target="_blank" title="DZone It!"&gt;&lt;img src="/blog//socialbookmarks/square/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dotnetkicks.com/kick/?url=http://yogesh.jagotagroup.com/blog/post/2008/11/01/Filtering-WPF-toolkit-DataGrid.aspx" target="_blank" title="Kick it!"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://yogesh.jagotagroup.com/blog/post/2008/11/01/Filtering-WPF-toolkit-DataGrid.aspx&amp;bgcolor=797167" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://yogesh.jagotagroup.com/blog/post/2008/11/01/Filtering-WPF-toolkit-DataGrid.aspx</link>
      <author>justjammin.nospam@nospam.jagotagroup.com (Yogesh Jagota)</author>
      <comments>http://yogesh.jagotagroup.com/blog/post/2008/11/01/Filtering-WPF-toolkit-DataGrid.aspx#comment</comments>
      <guid>http://yogesh.jagotagroup.com/blog/post.aspx?id=86c74eb7-0f08-4446-8077-45be8f14e3ff</guid>
      <pubDate>Sat, 01 Nov 2008 20:52:00 +0600</pubDate>
      <category>C#</category>
      <category>WPF</category>
      <dc:publisher>Yogesh Jagota</dc:publisher>
      <pingback:server>http://yogesh.jagotagroup.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://yogesh.jagotagroup.com/blog/post.aspx?id=86c74eb7-0f08-4446-8077-45be8f14e3ff</pingback:target>
      <slash:comments>11</slash:comments>
      <trackback:ping>http://yogesh.jagotagroup.com/blog/trackback.axd?id=86c74eb7-0f08-4446-8077-45be8f14e3ff</trackback:ping>
      <wfw:comment>http://yogesh.jagotagroup.com/blog/post/2008/11/01/Filtering-WPF-toolkit-DataGrid.aspx#comment</wfw:comment>
      <wfw:commentRss>http://yogesh.jagotagroup.com/blog/syndication.axd?post=86c74eb7-0f08-4446-8077-45be8f14e3ff</wfw:commentRss>
    </item>
    <item>
      <title>Firefox 3.1 beta 1 now available for download</title>
      <description>&lt;p&gt;
Firefox 3.1 Beta 1 is &lt;a href="http://www.mozilla.com/en-US/firefox/all-beta.html" target="_blank"&gt;now available for download&lt;/a&gt;.
This milestone is focused on testing the core functionality provided by
many new features and changes to the platform scheduled for Firefox
3.1. Ongoing planning for Firefox 3.1 can be followed at the &lt;a href="https://wiki.mozilla.org/Firefox3.1" target="_blank"&gt;Firefox 3.1 Planning Center&lt;/a&gt;, as well as in mozilla.dev.planning and on &lt;a href="http://irc.mozilla.org/" target="_blank"&gt;irc.mozilla.org&lt;/a&gt; in #shiretoko.
&lt;/p&gt;
&lt;p&gt;
New features and changes in this milestone that require feedback include:
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt; Web standards improvements in the Gecko layout engine&lt;/li&gt;
	&lt;li&gt;Added support for CSS 2.1 and CSS 3 properties&lt;/li&gt;
	&lt;li&gt;A new tab-switching shortcut that shows previews of the tab you&amp;rsquo;re switching to&lt;/li&gt;
	&lt;li&gt;Improved control over the Smart Location Bar using special characters to restrict your search&lt;/li&gt;
	&lt;li&gt;Support for new web technologies such as the &amp;lt;video&amp;gt; and
	&amp;lt;audio&amp;gt; elements, the W3C Geolocation API, JavaScript query
	selectors, web worker threads, SVG transforms and offline applications.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
More information about new web developer features are available in the &lt;a href="http://developer.mozilla.org/web-tech/2008/10/14/firefox-31-beta-1-an-overview-of-features-for-web-developers/" target="_blank"&gt;Web Tech blog post&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Testers can download &lt;a href="http://www.mozilla.com/en-US/firefox/all-beta.html" target="_blank"&gt;Firefox 3.1 Beta 1 builds&lt;/a&gt; for &lt;a href="https://www.mozilla.com/products/download.html?product=firefox-3.1b1&amp;amp;os=win&amp;amp;lang=en-US"&gt;Windows&lt;/a&gt;, &lt;a href="https://www.mozilla.com/products/download.html?product=firefox-3.1b1&amp;amp;os=osx&amp;amp;lang=en-US"&gt;Mac OS X&lt;/a&gt;, and &lt;a href="https://www.mozilla.com/products/download.html?product=firefox-3.1b1&amp;amp;os=linux&amp;amp;lang=en-US"&gt;Linux&lt;/a&gt; in &lt;a href="http://www.mozilla.com/firefox/all-beta.html"&gt;36 different languages&lt;/a&gt;. Developers should also read the &lt;a href="http://developer.mozilla.org/en/Firefox_3.1_for_developers" target="_blank"&gt;Firefox 3.1 for Developers&lt;/a&gt; article on the &lt;a href="http://developer.mozilla.org/devnews/" target="_blank"&gt;Mozilla Developer Center&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Source: &lt;a href="http://blog.mozilla.com/blog/2008/10/14/firefox-31-beta-1-now-available-for-download/" title="Official Mozilla Annoucement Page."&gt;Official Mozilla Annoucement Page.&lt;/a&gt; 
&lt;/p&gt;
&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://yogesh.jagotagroup.com/blog/post/2008/10/15/Firefox-31-beta-1-now-available-for-download.aspx&amp;amp;title=Firefox 3.1 beta 1 now available for download" target="_blank" title="Del.icio.us"&gt;&lt;img src="/blog//socialbookmarks/square/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://yogesh.jagotagroup.com/blog/post/2008/10/15/Firefox-31-beta-1-now-available-for-download.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/blog//socialbookmarks/square/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://yogesh.jagotagroup.com/blog/post/2008/10/15/Firefox-31-beta-1-now-available-for-download.aspx&amp;amp;title=Firefox 3.1 beta 1 now available for download" target="_blank" title="DZone It!"&gt;&lt;img src="/blog//socialbookmarks/square/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dotnetkicks.com/kick/?url=http://yogesh.jagotagroup.com/blog/post/2008/10/15/Firefox-31-beta-1-now-available-for-download.aspx" target="_blank" title="Kick it!"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://yogesh.jagotagroup.com/blog/post/2008/10/15/Firefox-31-beta-1-now-available-for-download.aspx&amp;bgcolor=797167" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://yogesh.jagotagroup.com/blog/post/2008/10/15/Firefox-31-beta-1-now-available-for-download.aspx</link>
      <author>justjammin.nospam@nospam.jagotagroup.com (Yogesh Jagota)</author>
      <comments>http://yogesh.jagotagroup.com/blog/post/2008/10/15/Firefox-31-beta-1-now-available-for-download.aspx#comment</comments>
      <guid>http://yogesh.jagotagroup.com/blog/post.aspx?id=f1811c4b-6855-44fb-b481-c39350ae6d13</guid>
      <pubDate>Wed, 15 Oct 2008 15:05:00 +0600</pubDate>
      <category>General</category>
      <dc:publisher>Yogesh Jagota</dc:publisher>
      <pingback:server>http://yogesh.jagotagroup.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://yogesh.jagotagroup.com/blog/post.aspx?id=f1811c4b-6855-44fb-b481-c39350ae6d13</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://yogesh.jagotagroup.com/blog/trackback.axd?id=f1811c4b-6855-44fb-b481-c39350ae6d13</trackback:ping>
      <wfw:comment>http://yogesh.jagotagroup.com/blog/post/2008/10/15/Firefox-31-beta-1-now-available-for-download.aspx#comment</wfw:comment>
      <wfw:commentRss>http://yogesh.jagotagroup.com/blog/syndication.axd?post=f1811c4b-6855-44fb-b481-c39350ae6d13</wfw:commentRss>
    </item>
    <item>
      <title>Silverlight 2 Released</title>
      <description>&lt;p&gt;
Silverlight 2 was released today.
&lt;/p&gt;
&lt;p&gt;
Check the details here at &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/10/14/silverlight-2-released.aspx" title="ScottGu's Blog"&gt;ScottGu&amp;#39;s Blog&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Direct Link to &lt;a href="http://silverlight.net/GetStarted/" title="download"&gt;download&lt;/a&gt;.
&lt;/p&gt;
&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://yogesh.jagotagroup.com/blog/post/2008/10/14/Silverlight-2-Released.aspx&amp;amp;title=Silverlight 2 Released" target="_blank" title="Del.icio.us"&gt;&lt;img src="/blog//socialbookmarks/square/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://yogesh.jagotagroup.com/blog/post/2008/10/14/Silverlight-2-Released.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/blog//socialbookmarks/square/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://yogesh.jagotagroup.com/blog/post/2008/10/14/Silverlight-2-Released.aspx&amp;amp;title=Silverlight 2 Released" target="_blank" title="DZone It!"&gt;&lt;img src="/blog//socialbookmarks/square/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dotnetkicks.com/kick/?url=http://yogesh.jagotagroup.com/blog/post/2008/10/14/Silverlight-2-Released.aspx" target="_blank" title="Kick it!"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://yogesh.jagotagroup.com/blog/post/2008/10/14/Silverlight-2-Released.aspx&amp;bgcolor=797167" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://yogesh.jagotagroup.com/blog/post/2008/10/14/Silverlight-2-Released.aspx</link>
      <author>justjammin.nospam@nospam.jagotagroup.com (Yogesh Jagota)</author>
      <comments>http://yogesh.jagotagroup.com/blog/post/2008/10/14/Silverlight-2-Released.aspx#comment</comments>
      <guid>http://yogesh.jagotagroup.com/blog/post.aspx?id=3f0543e0-303b-48eb-ad56-fd8ac637b1f0</guid>
      <pubDate>Tue, 14 Oct 2008 11:02:00 +0600</pubDate>
      <category>General</category>
      <dc:publisher>Yogesh Jagota</dc:publisher>
      <pingback:server>http://yogesh.jagotagroup.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://yogesh.jagotagroup.com/blog/post.aspx?id=3f0543e0-303b-48eb-ad56-fd8ac637b1f0</pingback:target>
      <slash:comments>4</slash:comments>
      <trackback:ping>http://yogesh.jagotagroup.com/blog/trackback.axd?id=3f0543e0-303b-48eb-ad56-fd8ac637b1f0</trackback:ping>
      <wfw:comment>http://yogesh.jagotagroup.com/blog/post/2008/10/14/Silverlight-2-Released.aspx#comment</wfw:comment>
      <wfw:commentRss>http://yogesh.jagotagroup.com/blog/syndication.axd?post=3f0543e0-303b-48eb-ad56-fd8ac637b1f0</wfw:commentRss>
    </item>
    <item>
      <title>Cheated by Yahoo in domain billing</title>
      <description>&lt;p&gt;
Hello Guys,
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;I just wanted to tell you all that you must be careful when buying a domain from Yahoo.com. I was using a Yahoo domain which had a billing amount of $9.95. This year (third year) Yahoo automatically increased the billing amount to $34.95 without giving any prior information and even billed the amount. I checked the help service which tells me that I can cancel the service but I will not get any refund at all. Calling the Yahoo customer care is not an option and no email id is provided for the customers to get in touch with Yahoo. If Yahoo has only US numbers and no email ids, why in the name of God should they bill to non US citizen?? 
&lt;/p&gt;
&lt;p&gt;
I am really disappointed from being cheated in such a fashion from a company which talks about morales and honesty. I am using GoDaddy.com for 2 of my other domains and never had any such issue. It also gives me a simple option not to get auto billed without prior information, a option which I failed to find with Yahoo.com. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;The picture of the billing is attached for all of you to see. I hope nobody else gets cheated in such a way. 
&lt;/p&gt;
&lt;img src="http://yogesh.jagotagroup.com/blog/image.axd?picture=Yahoo.png" alt="" /&gt;
&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://yogesh.jagotagroup.com/blog/post/2008/08/24/Cheated-by-Yahoo-in-domain-billing.aspx&amp;amp;title=Cheated by Yahoo in domain billing" target="_blank" title="Del.icio.us"&gt;&lt;img src="/blog//socialbookmarks/square/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://yogesh.jagotagroup.com/blog/post/2008/08/24/Cheated-by-Yahoo-in-domain-billing.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/blog//socialbookmarks/square/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://yogesh.jagotagroup.com/blog/post/2008/08/24/Cheated-by-Yahoo-in-domain-billing.aspx&amp;amp;title=Cheated by Yahoo in domain billing" target="_blank" title="DZone It!"&gt;&lt;img src="/blog//socialbookmarks/square/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dotnetkicks.com/kick/?url=http://yogesh.jagotagroup.com/blog/post/2008/08/24/Cheated-by-Yahoo-in-domain-billing.aspx" target="_blank" title="Kick it!"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://yogesh.jagotagroup.com/blog/post/2008/08/24/Cheated-by-Yahoo-in-domain-billing.aspx&amp;bgcolor=797167" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://yogesh.jagotagroup.com/blog/post/2008/08/24/Cheated-by-Yahoo-in-domain-billing.aspx</link>
      <author>justjammin.nospam@nospam.jagotagroup.com (Yogesh Jagota)</author>
      <comments>http://yogesh.jagotagroup.com/blog/post/2008/08/24/Cheated-by-Yahoo-in-domain-billing.aspx#comment</comments>
      <guid>http://yogesh.jagotagroup.com/blog/post.aspx?id=bcd76dff-1f7a-4942-b92f-1854d880a24b</guid>
      <pubDate>Sun, 24 Aug 2008 13:04:00 +0600</pubDate>
      <category>General</category>
      <dc:publisher>Yogesh Jagota</dc:publisher>
      <pingback:server>http://yogesh.jagotagroup.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://yogesh.jagotagroup.com/blog/post.aspx?id=bcd76dff-1f7a-4942-b92f-1854d880a24b</pingback:target>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://yogesh.jagotagroup.com/blog/trackback.axd?id=bcd76dff-1f7a-4942-b92f-1854d880a24b</trackback:ping>
      <wfw:comment>http://yogesh.jagotagroup.com/blog/post/2008/08/24/Cheated-by-Yahoo-in-domain-billing.aspx#comment</wfw:comment>
      <wfw:commentRss>http://yogesh.jagotagroup.com/blog/syndication.axd?post=bcd76dff-1f7a-4942-b92f-1854d880a24b</wfw:commentRss>
    </item>
    <item>
      <title>How to place all WPF commands and related events centrally in a static class</title>
      <description>&lt;p&gt;
Commands in WPF can be defined and maintained in
a static class. The commands need to be bind with the window whose
controls use them. To bind the commands, events CanExecute and Executed
events need to defined in the window itself. But most of the times,
people want all their commands and related CanExecute and Executed
events in one single static class which makes it easier to maintain the
program logic from one central place. The purpose of &lt;a href="http://www.codeproject.com/KB/WPF/CentralizingWPFCommands.aspx" title="this article"&gt;this article&lt;/a&gt; which I posted on codeproject is to tell you how to enable this facility. 
&lt;/p&gt;
&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://yogesh.jagotagroup.com/blog/post/2008/07/25/How-to-place-all-WPF-commands-and-related-events-centrally-in-a-static-class.aspx&amp;amp;title=How to place all WPF commands and related events centrally in a static class" target="_blank" title="Del.icio.us"&gt;&lt;img src="/blog//socialbookmarks/square/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://yogesh.jagotagroup.com/blog/post/2008/07/25/How-to-place-all-WPF-commands-and-related-events-centrally-in-a-static-class.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/blog//socialbookmarks/square/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://yogesh.jagotagroup.com/blog/post/2008/07/25/How-to-place-all-WPF-commands-and-related-events-centrally-in-a-static-class.aspx&amp;amp;title=How to place all WPF commands and related events centrally in a static class" target="_blank" title="DZone It!"&gt;&lt;img src="/blog//socialbookmarks/square/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dotnetkicks.com/kick/?url=http://yogesh.jagotagroup.com/blog/post/2008/07/25/How-to-place-all-WPF-commands-and-related-events-centrally-in-a-static-class.aspx" target="_blank" title="Kick it!"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://yogesh.jagotagroup.com/blog/post/2008/07/25/How-to-place-all-WPF-commands-and-related-events-centrally-in-a-static-class.aspx&amp;bgcolor=797167" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://yogesh.jagotagroup.com/blog/post/2008/07/25/How-to-place-all-WPF-commands-and-related-events-centrally-in-a-static-class.aspx</link>
      <author>justjammin.nospam@nospam.jagotagroup.com (Yogesh Jagota)</author>
      <comments>http://yogesh.jagotagroup.com/blog/post/2008/07/25/How-to-place-all-WPF-commands-and-related-events-centrally-in-a-static-class.aspx#comment</comments>
      <guid>http://yogesh.jagotagroup.com/blog/post.aspx?id=bdb428dc-de4a-4299-9cf6-41d200c8a3cb</guid>
      <pubDate>Fri, 25 Jul 2008 00:33:00 +0600</pubDate>
      <category>C#</category>
      <category>WPF</category>
      <dc:publisher>Yogesh Jagota</dc:publisher>
      <pingback:server>http://yogesh.jagotagroup.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://yogesh.jagotagroup.com/blog/post.aspx?id=bdb428dc-de4a-4299-9cf6-41d200c8a3cb</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://yogesh.jagotagroup.com/blog/trackback.axd?id=bdb428dc-de4a-4299-9cf6-41d200c8a3cb</trackback:ping>
      <wfw:comment>http://yogesh.jagotagroup.com/blog/post/2008/07/25/How-to-place-all-WPF-commands-and-related-events-centrally-in-a-static-class.aspx#comment</wfw:comment>
      <wfw:commentRss>http://yogesh.jagotagroup.com/blog/syndication.axd?post=bdb428dc-de4a-4299-9cf6-41d200c8a3cb</wfw:commentRss>
    </item>
    <item>
      <title>Excel Xml Library 3.06 released</title>
      <description>&lt;h2&gt;Code breaking changes:&lt;/h2&gt;
&lt;p&gt;
Formula system does not work the way it used to, so the previous code might break. For backward compatibility, I have included a static class FormulaHelper which can be used with the previous code. Just replace the previous code in the following way: 
&lt;/p&gt;
&lt;p&gt;
&lt;div class="code"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;cell.Value = &lt;span class="kwrd"&gt;new&lt;/span&gt; Formula(&amp;quot;Sum&amp;quot;, &lt;span class="kwrd"&gt;new&lt;/span&gt; Range(sheet[3, 3], sheet[6, 3]));&lt;/pre&gt;
&lt;/div&gt; 
&lt;/p&gt;
&lt;p&gt;
to 
&lt;/p&gt;
&lt;p&gt;
&lt;div class="code"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;cell.Value = &lt;span class="preproc"&gt;FormulaHelper&lt;/span&gt;.Formula(&amp;quot;Sum&amp;quot;, &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;new&lt;/span&gt; Range(sheet[3, 3], sheet[6, 3]));&lt;/pre&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;h2&gt;Changes:&lt;/h2&gt;
&lt;ul&gt;
	&lt;li&gt;
	&lt;p&gt;
	New Formula system implemented.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	RowSpan and ColumnSpan properties added to cell.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Small error in named range rename fixed.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Freeze column won&amp;#39;t work if freeze row is set. Fixed.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Style was not saved in Column export. Fixed.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Assembly file contained wrong information about this library. Fixed.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Workbook export can throw a NullReferenceException when new XmlWriter is created. Fixed.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Documented IStyle interfaces.
	&lt;/p&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
For a full brief list of features, &lt;a href="http://yogesh.jagotagroup.com/blog/page/Excel-Xml-Library.aspx" title="look here"&gt;look here&lt;/a&gt;. For a detailed feature set, download the documentation from the page mentioned.
&lt;/p&gt;
&lt;h2&gt;Downloads&lt;/h2&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://yogesh.jagotagroup.com/blog/file.axd?file=Documentation.zip"&gt;Full Documentation 3.06 (282 KB)&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://yogesh.jagotagroup.com/blog/file.axd?file=Yogesh.Extensions.zip"&gt;Library DLLs v3.06 for .Net 2.0 (43.2 KB)&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://yogesh.jagotagroup.com/blog/file.axd?file=Yogesh.Extensions35.zip"&gt;Library DLLs v3.06 for .Net 3.5 (42.8 KB)&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://yogesh.jagotagroup.com/blog/file.axd?file=ExcelXml.zip"&gt;ExcelXml Library Source v3.06 (985 KB)&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://yogesh.jagotagroup.com/blog/file.axd?file=Extensions.zip"&gt;Extensions Library Source v3.06 (103 KB)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://yogesh.jagotagroup.com/blog/post/2008/07/23/Excel-Xml-Library-306-released.aspx&amp;amp;title=Excel Xml Library 3.06 released" target="_blank" title="Del.icio.us"&gt;&lt;img src="/blog//socialbookmarks/square/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://yogesh.jagotagroup.com/blog/post/2008/07/23/Excel-Xml-Library-306-released.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/blog//socialbookmarks/square/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://yogesh.jagotagroup.com/blog/post/2008/07/23/Excel-Xml-Library-306-released.aspx&amp;amp;title=Excel Xml Library 3.06 released" target="_blank" title="DZone It!"&gt;&lt;img src="/blog//socialbookmarks/square/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dotnetkicks.com/kick/?url=http://yogesh.jagotagroup.com/blog/post/2008/07/23/Excel-Xml-Library-306-released.aspx" target="_blank" title="Kick it!"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://yogesh.jagotagroup.com/blog/post/2008/07/23/Excel-Xml-Library-306-released.aspx&amp;bgcolor=797167" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://yogesh.jagotagroup.com/blog/post/2008/07/23/Excel-Xml-Library-306-released.aspx</link>
      <author>justjammin.nospam@nospam.jagotagroup.com (Yogesh Jagota)</author>
      <comments>http://yogesh.jagotagroup.com/blog/post/2008/07/23/Excel-Xml-Library-306-released.aspx#comment</comments>
      <guid>http://yogesh.jagotagroup.com/blog/post.aspx?id=36064a81-bbe6-40d6-9b2b-d0793926633c</guid>
      <pubDate>Wed, 23 Jul 2008 15:44:00 +0600</pubDate>
      <category>Excel Xml Library</category>
      <dc:publisher>Yogesh Jagota</dc:publisher>
      <pingback:server>http://yogesh.jagotagroup.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://yogesh.jagotagroup.com/blog/post.aspx?id=36064a81-bbe6-40d6-9b2b-d0793926633c</pingback:target>
      <slash:comments>4</slash:comments>
      <trackback:ping>http://yogesh.jagotagroup.com/blog/trackback.axd?id=36064a81-bbe6-40d6-9b2b-d0793926633c</trackback:ping>
      <wfw:comment>http://yogesh.jagotagroup.com/blog/post/2008/07/23/Excel-Xml-Library-306-released.aspx#comment</wfw:comment>
      <wfw:commentRss>http://yogesh.jagotagroup.com/blog/syndication.axd?post=36064a81-bbe6-40d6-9b2b-d0793926633c</wfw:commentRss>
    </item>
    <item>
      <title>Ways of making a WPF application Single Instance</title>
      <description>&lt;p&gt;
There are many ways of making a WPF application a single instance application but such solutions are mostly difficult to find, or even if you manage to find one, they solve one problem and create another. Here are two ways of doing the same, and a solution created by me which is a hybrid of two posts I saw on the net.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;1. Remove the App.xaml file completely&lt;/strong&gt;&lt;br /&gt;
The first method is by removing the App.xaml completely which is perfectly demonstrated by &lt;a href="http://msdn.microsoft.com/en-us/library/ms771662.aspx"&gt;this MSDN article&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;
2. Use Interop services&lt;/strong&gt;&lt;br /&gt;
The second method is by using COM and Interop services which makes your application single instance with almost no code at all. This method was posted on &lt;a href="http://forums.msdn.microsoft.com/en/wpf/thread/e321cc4b-e2f3-474e-9575-bacbd2e83a60/"&gt;this thread&lt;/a&gt; by &lt;span class="Item"&gt;Marco Zhou.&lt;/span&gt; A example is given below:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="code"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;cc:WpfApplication&lt;/span&gt; &lt;span class="attr"&gt;x:Class&lt;/span&gt;&lt;span class="kwrd"&gt;="SingleInstanceAppDemo.App"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    &lt;span class="attr"&gt;xmlns&lt;/span&gt;&lt;span class="kwrd"&gt;="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="attr"&gt;xmlns:x&lt;/span&gt;&lt;span class="kwrd"&gt;="http://schemas.microsoft.com/winfx/2006/xaml"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    &lt;span class="attr"&gt;xmlns:cc&lt;/span&gt;&lt;span class="kwrd"&gt;="clr-namespace:Sheva.Windows"&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    &lt;span class="attr"&gt;IsSingleInstance&lt;/span&gt;&lt;span class="kwrd"&gt;="True"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    &lt;span class="attr"&gt;StartupUri&lt;/span&gt;&lt;span class="kwrd"&gt;="Window1.xaml"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;cc:WpfApplication.Resources&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Style&lt;/span&gt; &lt;span class="attr"&gt;TargetType&lt;/span&gt;&lt;span class="kwrd"&gt;="{x:Type TextBlock}"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Setter&lt;/span&gt; &lt;span class="attr"&gt;Property&lt;/span&gt;&lt;span class="kwrd"&gt;="Foreground"&lt;/span&gt; &lt;span class="attr"&gt;Value&lt;/span&gt;&lt;span class="kwrd"&gt;="White"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Setter&lt;/span&gt; &lt;span class="attr"&gt;Property&lt;/span&gt;&lt;span class="kwrd"&gt;="FontSize"&lt;/span&gt; &lt;span class="attr"&gt;Value&lt;/span&gt;&lt;span class="kwrd"&gt;="40"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Setter&lt;/span&gt; &lt;span class="attr"&gt;Property&lt;/span&gt;&lt;span class="kwrd"&gt;="FontWeight"&lt;/span&gt; &lt;span class="attr"&gt;Value&lt;/span&gt;&lt;span class="kwrd"&gt;="Bold"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Setter&lt;/span&gt; &lt;span class="attr"&gt;Property&lt;/span&gt;&lt;span class="kwrd"&gt;="FontFamily"&lt;/span&gt; &lt;span class="attr"&gt;Value&lt;/span&gt;&lt;span class="kwrd"&gt;="Verdana"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Style&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;cc:WpfApplication.Resources&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;cc:WpfApplication&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
The source can be downloaded &lt;a href="http://www.cnblogs.com/Files/sheva/SingleInstanceAppDemo.zip"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;3. Making application Single Instance without deleting App.xaml or using Interop&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
This is the way I pefer it but I tried to search the net but did not found any way of doing anything like that. Then I stumbled upon &lt;a href="http://learnwpf.com/Posts/Post.aspx?postId=a5643949-ab80-47f9-93c8-f5e8e5782d34"&gt;this post&lt;/a&gt; which shows you how to provide your own Main() method in a WPF application. As soon as I found this, I made a hybrid of this Main() method output and the MSDN article to successfully create a solution to the problem at hand.
&lt;/p&gt;
&lt;p&gt;
All you have to do is, make the build action of App.xaml to &lt;u&gt;ApplicationDefinition&lt;/u&gt; as mentioned in &lt;a href="http://learnwpf.com/Posts/Post.aspx?postId=a5643949-ab80-47f9-93c8-f5e8e5782d34"&gt;this post&lt;/a&gt; and write this in your App.cs:
&lt;/p&gt;
&lt;p&gt;
&lt;div class="code"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Configuration;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Data;&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Linq;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Windows;&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.VisualBasic.ApplicationServices;&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; YourNamespace&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;{&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; EntryPoint&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [STAThread]&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Main(&lt;span class="kwrd"&gt;string&lt;/span&gt;[] args)&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SingleInstanceManager manager = &lt;span class="kwrd"&gt;new&lt;/span&gt; SingleInstanceManager();&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; manager.Run(args);&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;&lt;span class="rem"&gt;// Using VB bits to detect single instances and process accordingly:&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;&lt;span class="rem"&gt;//&amp;nbsp; * OnStartup is fired when the first instance loads&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;&lt;span class="rem"&gt;//&amp;nbsp; * OnStartupNextInstance is fired when the application is re-run again&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;&lt;span class="rem"&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; NOTE: it is redirected to this instance thanks to IsSingleInstance&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; SingleInstanceManager : WindowsFormsApplicationBase&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; YourApplication app;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;public&lt;/span&gt; SingleInstanceManager()&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&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 class="kwrd"&gt;this&lt;/span&gt;.IsSingleInstance = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; OnStartup(&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft.VisualBasic.ApplicationServices.StartupEventArgs e)&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  39:  &lt;/span&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 class="rem"&gt;// First time app is launched&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  40:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; app = &lt;span class="kwrd"&gt;new&lt;/span&gt; YourApplication();&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  41:  &lt;/span&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 class="rem"&gt;// You have to add this line to the MSDN sample&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  42:  &lt;/span&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 class="rem"&gt;// to make it work here...&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  43:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; app.InitializeComponent();&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  44:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; app.Run();&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  45:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  46:  &lt;/span&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 class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  47:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  48:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  49:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; OnStartupNextInstance(&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  50:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StartupNextInstanceEventArgs eventArgs)&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  51:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  52:  &lt;/span&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 class="rem"&gt;// Subsequent launches&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  53:  &lt;/span&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 class="kwrd"&gt;base&lt;/span&gt;.OnStartupNextInstance(eventArgs);&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  54:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; app.Activate();&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  55:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  56:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  57:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  58:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  59:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="rem"&gt;/// Interaction logic for App.xaml&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  60:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  61:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; YourApplication : Application&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  62:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  63:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; OnStartup(&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  64:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Windows.StartupEventArgs e)&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  65:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  66:  &lt;/span&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 class="kwrd"&gt;base&lt;/span&gt;.OnStartup(e);&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  67:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  68:  &lt;/span&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 class="rem"&gt;/* And remove this ...&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  69:  &lt;/span&gt;&lt;span class="rem"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Create and show the application&amp;#39;s main window&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  70:  &lt;/span&gt;&lt;span class="rem"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MainWindow window = new MainWindow();&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  71:  &lt;/span&gt;&lt;span class="rem"&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&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  72:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  73:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window.Show();&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  74:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  75:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  76:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Activate()&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  77:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  78:  &lt;/span&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 class="rem"&gt;// Reactivate application&amp;#39;s main window&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  79:  &lt;/span&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 class="kwrd"&gt;this&lt;/span&gt;.MainWindow.Activate();&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  80:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  81:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  82:  &lt;/span&gt;}&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  83:  &lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
Download the file &lt;a href="http://yogesh.jagotagroup.com/blog/file.axd?file=code.cs"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
We use InitializeComponent in the OnStartup routine (line 43) to make the main window run and show immediately. As your App.xaml already contains this information as the StartupUri, InitializeComponent will itself determine which is the window you want. A good side effect of this approach is that you don&amp;#39;t need to have the name of your main window defined explictly.
&lt;/p&gt;
&lt;p&gt;
As the main window is already visible, we don&amp;#39;t need to show the main window yet again in YourApplication.OnStartup, do we? If we do, we will have two copies of the main window running together.To avoid this, we have to comment line 69 and 70.
&lt;/p&gt;
&lt;p&gt;
But this approach has a flaw. If you use this approach, every global resource you will define in the App.xaml will not show up in the designer windows of both Visual Studio 2008 and Expression Blend. Although the application will show up the resources just fine when ran. I am trying to find a workaround to this problem and will post it as soon as I find it.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
I hope this helps everybody who is looking for such a hybrid solution.
&lt;/p&gt;
&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://yogesh.jagotagroup.com/blog/post/2008/07/03/Ways-of-making-a-WPF-application-Single-Instance.aspx&amp;amp;title=Ways of making a WPF application Single Instance" target="_blank" title="Del.icio.us"&gt;&lt;img src="/blog//socialbookmarks/square/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://yogesh.jagotagroup.com/blog/post/2008/07/03/Ways-of-making-a-WPF-application-Single-Instance.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/blog//socialbookmarks/square/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://yogesh.jagotagroup.com/blog/post/2008/07/03/Ways-of-making-a-WPF-application-Single-Instance.aspx&amp;amp;title=Ways of making a WPF application Single Instance" target="_blank" title="DZone It!"&gt;&lt;img src="/blog//socialbookmarks/square/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dotnetkicks.com/kick/?url=http://yogesh.jagotagroup.com/blog/post/2008/07/03/Ways-of-making-a-WPF-application-Single-Instance.aspx" target="_blank" title="Kick it!"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://yogesh.jagotagroup.com/blog/post/2008/07/03/Ways-of-making-a-WPF-application-Single-Instance.aspx&amp;bgcolor=797167" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://yogesh.jagotagroup.com/blog/post/2008/07/03/Ways-of-making-a-WPF-application-Single-Instance.aspx</link>
      <author>justjammin.nospam@nospam.jagotagroup.com (Yogesh Jagota)</author>
      <comments>http://yogesh.jagotagroup.com/blog/post/2008/07/03/Ways-of-making-a-WPF-application-Single-Instance.aspx#comment</comments>
      <guid>http://yogesh.jagotagroup.com/blog/post.aspx?id=c4714f36-8999-43e9-ad4c-8d4f0b4d0bd5</guid>
      <pubDate>Thu, 03 Jul 2008 00:11:00 +0600</pubDate>
      <category>C#</category>
      <category>WPF</category>
      <dc:publisher>Yogesh Jagota</dc:publisher>
      <pingback:server>http://yogesh.jagotagroup.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://yogesh.jagotagroup.com/blog/post.aspx?id=c4714f36-8999-43e9-ad4c-8d4f0b4d0bd5</pingback:target>
      <slash:comments>31</slash:comments>
      <trackback:ping>http://yogesh.jagotagroup.com/blog/trackback.axd?id=c4714f36-8999-43e9-ad4c-8d4f0b4d0bd5</trackback:ping>
      <wfw:comment>http://yogesh.jagotagroup.com/blog/post/2008/07/03/Ways-of-making-a-WPF-application-Single-Instance.aspx#comment</wfw:comment>
      <wfw:commentRss>http://yogesh.jagotagroup.com/blog/syndication.axd?post=c4714f36-8999-43e9-ad4c-8d4f0b4d0bd5</wfw:commentRss>
    </item>
    <item>
      <title>Solution level Auto build increment Add-In v1.23</title>
      <description>&lt;p&gt;
AutoBuildIncrement&amp;#39;s updated version&amp;#39;s (1.23) details and download is available from &lt;a href="http://yogesh.jagotagroup.com/blog/page/Solution-level-Auto-build-increment-Add-In.aspx"&gt;details page&lt;/a&gt; (source also available on the same page). 
&lt;/p&gt;
&lt;p&gt;
You can also directly download the visual studio installer via this link: &lt;a rel="enclosure" href="http://yogesh.jagotagroup.com/blog/file.axd?file=AutoBuildIncrement.vsi"&gt;AutoBuildIncrement.vsi (15.20 kb)&lt;/a&gt;, if you know what is the add-in all about.
&lt;/p&gt;
&lt;h2&gt;Changes:&lt;/h2&gt;
&lt;ul&gt;
	&lt;li&gt;
	&lt;p&gt;
	Now both or any of two, AssemblyVersion &amp;amp; AssemblyFileVersion can be updated.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Fixed an error where options window doesn&amp;#39;t comes up if project contains a setup or any other unsupported project type.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Source control support added. Fix by S. Brozius.
	&lt;/p&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://yogesh.jagotagroup.com/blog/post/2008/06/14/Solution-level-Auto-build-increment-Add-In-v123.aspx&amp;amp;title=Solution level Auto build increment Add-In v1.23" target="_blank" title="Del.icio.us"&gt;&lt;img src="/blog//socialbookmarks/square/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://yogesh.jagotagroup.com/blog/post/2008/06/14/Solution-level-Auto-build-increment-Add-In-v123.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/blog//socialbookmarks/square/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://yogesh.jagotagroup.com/blog/post/2008/06/14/Solution-level-Auto-build-increment-Add-In-v123.aspx&amp;amp;title=Solution level Auto build increment Add-In v1.23" target="_blank" title="DZone It!"&gt;&lt;img src="/blog//socialbookmarks/square/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dotnetkicks.com/kick/?url=http://yogesh.jagotagroup.com/blog/post/2008/06/14/Solution-level-Auto-build-increment-Add-In-v123.aspx" target="_blank" title="Kick it!"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://yogesh.jagotagroup.com/blog/post/2008/06/14/Solution-level-Auto-build-increment-Add-In-v123.aspx&amp;bgcolor=797167" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://yogesh.jagotagroup.com/blog/post/2008/06/14/Solution-level-Auto-build-increment-Add-In-v123.aspx</link>
      <author>justjammin.nospam@nospam.jagotagroup.com (Yogesh Jagota)</author>
      <comments>http://yogesh.jagotagroup.com/blog/post/2008/06/14/Solution-level-Auto-build-increment-Add-In-v123.aspx#comment</comments>
      <guid>http://yogesh.jagotagroup.com/blog/post.aspx?id=276a0eb0-a775-448f-a77c-494cc9b8c7b9</guid>
      <pubDate>Sat, 14 Jun 2008 14:49:00 +0600</pubDate>
      <category>C#</category>
      <category>Open Source</category>
      <category>Visual Studio</category>
      <dc:publisher>Yogesh Jagota</dc:publisher>
      <pingback:server>http://yogesh.jagotagroup.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://yogesh.jagotagroup.com/blog/post.aspx?id=276a0eb0-a775-448f-a77c-494cc9b8c7b9</pingback:target>
      <slash:comments>4</slash:comments>
      <trackback:ping>http://yogesh.jagotagroup.com/blog/trackback.axd?id=276a0eb0-a775-448f-a77c-494cc9b8c7b9</trackback:ping>
      <wfw:comment>http://yogesh.jagotagroup.com/blog/post/2008/06/14/Solution-level-Auto-build-increment-Add-In-v123.aspx#comment</wfw:comment>
      <wfw:commentRss>http://yogesh.jagotagroup.com/blog/syndication.axd?post=276a0eb0-a775-448f-a77c-494cc9b8c7b9</wfw:commentRss>
    </item>
    <item>
      <title>Excel Xml Library 2.89 Source code released</title>
      <description>&lt;p&gt;
The source code for the library is now open. You can download the source code and modify or use it in any way.
&lt;/p&gt;
&lt;p&gt;
Download from here: &lt;a href="http://yogesh.jagotagroup.com/blog/file.axd?file=ExcelXml.zip"&gt;ExcelXml library source code v2.89 (966 KB)&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
If you make any major amendments, do let me know so that I can incorporate those changes into the library.
&lt;/p&gt;
&lt;p&gt;
Enjoy!
&lt;/p&gt;
&lt;p&gt;
Yogesh 
&lt;/p&gt;
&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://yogesh.jagotagroup.com/blog/post/2008/06/14/Excel-Xml-Library-289-Source-code-released.aspx&amp;amp;title=Excel Xml Library 2.89 Source code released" target="_blank" title="Del.icio.us"&gt;&lt;img src="/blog//socialbookmarks/square/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://yogesh.jagotagroup.com/blog/post/2008/06/14/Excel-Xml-Library-289-Source-code-released.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/blog//socialbookmarks/square/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://yogesh.jagotagroup.com/blog/post/2008/06/14/Excel-Xml-Library-289-Source-code-released.aspx&amp;amp;title=Excel Xml Library 2.89 Source code released" target="_blank" title="DZone It!"&gt;&lt;img src="/blog//socialbookmarks/square/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dotnetkicks.com/kick/?url=http://yogesh.jagotagroup.com/blog/post/2008/06/14/Excel-Xml-Library-289-Source-code-released.aspx" target="_blank" title="Kick it!"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://yogesh.jagotagroup.com/blog/post/2008/06/14/Excel-Xml-Library-289-Source-code-released.aspx&amp;bgcolor=797167" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://yogesh.jagotagroup.com/blog/post/2008/06/14/Excel-Xml-Library-289-Source-code-released.aspx</link>
      <author>justjammin.nospam@nospam.jagotagroup.com (Yogesh Jagota)</author>
      <comments>http://yogesh.jagotagroup.com/blog/post/2008/06/14/Excel-Xml-Library-289-Source-code-released.aspx#comment</comments>
      <guid>http://yogesh.jagotagroup.com/blog/post.aspx?id=aa28ff61-e455-4a7c-9f7b-d30f14979246</guid>
      <pubDate>Sat, 14 Jun 2008 13:28:00 +0600</pubDate>
      <category>C#</category>
      <category>Excel Xml Library</category>
      <category>Open Source</category>
      <dc:publisher>Yogesh Jagota</dc:publisher>
      <pingback:server>http://yogesh.jagotagroup.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://yogesh.jagotagroup.com/blog/post.aspx?id=aa28ff61-e455-4a7c-9f7b-d30f14979246</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://yogesh.jagotagroup.com/blog/trackback.axd?id=aa28ff61-e455-4a7c-9f7b-d30f14979246</trackback:ping>
      <wfw:comment>http://yogesh.jagotagroup.com/blog/post/2008/06/14/Excel-Xml-Library-289-Source-code-released.aspx#comment</wfw:comment>
      <wfw:commentRss>http://yogesh.jagotagroup.com/blog/syndication.axd?post=aa28ff61-e455-4a7c-9f7b-d30f14979246</wfw:commentRss>
    </item>
    <item>
      <title>Excel Xml Library 2.89 released</title>
      <description>&lt;h2&gt;Changes:&lt;/h2&gt;
&lt;ul&gt;
	&lt;li&gt;
	&lt;p&gt;
	Added Print Area support.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Added TabColor property to Worksheet.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Added reference (HRef) support to cell.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Added support for custom display formats.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Added support for cell patterns.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Fixed error where &amp;quot;Long Date&amp;quot;, &amp;quot;Short Date&amp;quot;, &amp;quot;Time&amp;quot;, &amp;quot;@&amp;quot; as DisplayFormat caused a exception.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Fixed number format issue where some international formats are not saved properly.
	&lt;/p&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;
Source code for the library going open soon.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
For a full brief list of features, &lt;a href="http://yogesh.jagotagroup.com/blog/page/Excel-Xml-Library.aspx" title="look here"&gt;look here&lt;/a&gt;. For a detailed feature set, download the documentation from the page mentioned.
&lt;/p&gt;
&lt;h2&gt;Downloads&lt;/h2&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://yogesh.jagotagroup.com/blog/file.axd?file=Documentation.zip"&gt;Full Documentation 2.89 (282 KB)&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://yogesh.jagotagroup.com/blog/file.axd?file=Yogesh.Extensions.zip"&gt;Library DLLs v2.89 (42.8 KB)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://yogesh.jagotagroup.com/blog/post/2008/06/10/Excel-Xml-Library-289-released.aspx&amp;amp;title=Excel Xml Library 2.89 released" target="_blank" title="Del.icio.us"&gt;&lt;img src="/blog//socialbookmarks/square/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://yogesh.jagotagroup.com/blog/post/2008/06/10/Excel-Xml-Library-289-released.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/blog//socialbookmarks/square/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://yogesh.jagotagroup.com/blog/post/2008/06/10/Excel-Xml-Library-289-released.aspx&amp;amp;title=Excel Xml Library 2.89 released" target="_blank" title="DZone It!"&gt;&lt;img src="/blog//socialbookmarks/square/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dotnetkicks.com/kick/?url=http://yogesh.jagotagroup.com/blog/post/2008/06/10/Excel-Xml-Library-289-released.aspx" target="_blank" title="Kick it!"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://yogesh.jagotagroup.com/blog/post/2008/06/10/Excel-Xml-Library-289-released.aspx&amp;bgcolor=797167" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://yogesh.jagotagroup.com/blog/post/2008/06/10/Excel-Xml-Library-289-released.aspx</link>
      <author>justjammin.nospam@nospam.jagotagroup.com (Yogesh Jagota)</author>
      <comments>http://yogesh.jagotagroup.com/blog/post/2008/06/10/Excel-Xml-Library-289-released.aspx#comment</comments>
      <guid>http://yogesh.jagotagroup.com/blog/post.aspx?id=83c95240-b3e9-44e2-9e76-3268353eea84</guid>
      <pubDate>Tue, 10 Jun 2008 22:38:00 +0600</pubDate>
      <category>Excel Xml Library</category>
      <dc:publisher>Yogesh Jagota</dc:publisher>
      <pingback:server>http://yogesh.jagotagroup.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://yogesh.jagotagroup.com/blog/post.aspx?id=83c95240-b3e9-44e2-9e76-3268353eea84</pingback:target>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://yogesh.jagotagroup.com/blog/trackback.axd?id=83c95240-b3e9-44e2-9e76-3268353eea84</trackback:ping>
      <wfw:comment>http://yogesh.jagotagroup.com/blog/post/2008/06/10/Excel-Xml-Library-289-released.aspx#comment</wfw:comment>
      <wfw:commentRss>http://yogesh.jagotagroup.com/blog/syndication.axd?post=83c95240-b3e9-44e2-9e76-3268353eea84</wfw:commentRss>
    </item>
    <item>
      <title>Excel Xml Library 2.82 released</title>
      <description>&lt;h2&gt;Updates&lt;/h2&gt;
&lt;p&gt;
2.82: Fixed single cell merge bug&lt;br /&gt;
2.81: Fixed multi worksheet import bug&amp;nbsp;
&lt;/p&gt;
&lt;h2&gt;New Features&lt;/h2&gt;
&lt;ol&gt;
	&lt;li&gt;
	&lt;p&gt;
	Added Cell Merge/Unmerge support. 
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Added GetEnumerator support for sheets, rows and ranges.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Added CellCollection class.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Fixed a error where numeric output of the cell contained global number format where it should only be US only format. Thanks to Reinhard.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Added 6 new display format types and removed Custom format type.
	&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;p&gt;
	Added Index property to cell which also has a ExcelColumnIndex property which returns columns in excel format, eg. A, AA, AC, FA.
	&lt;/p&gt;
	&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
For a full brief list of features, &lt;a href="http://yogesh.jagotagroup.com/blog/page/Excel-Xml-Library.aspx" title="look here"&gt;look here&lt;/a&gt;. For a detailed feature set, download the documentation from the page mentioned.
&lt;/p&gt;
&lt;h2&gt;Breaking Changes&lt;/h2&gt;
&lt;p&gt;
Changes which will break previous code when used with this new version are:&amp;nbsp;
&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;
	&lt;p&gt;
	CellCompare delegate is now replaced with Predicate&amp;lt;Cell&amp;gt;
	&lt;/p&gt;
	&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
See the updated &lt;a href="http://yogesh.jagotagroup.com/blog/page/Using-the-library.aspx" title="How to use the library"&gt;library usage page&lt;/a&gt; for more information on how to use the library.
&lt;/p&gt;
&lt;h2&gt;Downloads&lt;/h2&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://yogesh.jagotagroup.com/blog/file.axd?file=Documentation.zip"&gt;Full Documentation 2.81 (274 KB)&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://yogesh.jagotagroup.com/blog/file.axd?file=Yogesh.Extensions.zip"&gt;Library DLLs v2.81 (42 KB)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://yogesh.jagotagroup.com/blog/post/2008/03/06/Excel-Xml-Library-282-released.aspx&amp;amp;title=Excel Xml Library 2.82 released" target="_blank" title="Del.icio.us"&gt;&lt;img src="/blog//socialbookmarks/square/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://yogesh.jagotagroup.com/blog/post/2008/03/06/Excel-Xml-Library-282-released.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/blog//socialbookmarks/square/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://yogesh.jagotagroup.com/blog/post/2008/03/06/Excel-Xml-Library-282-released.aspx&amp;amp;title=Excel Xml Library 2.82 released" target="_blank" title="DZone It!"&gt;&lt;img src="/blog//socialbookmarks/square/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dotnetkicks.com/kick/?url=http://yogesh.jagotagroup.com/blog/post/2008/03/06/Excel-Xml-Library-282-released.aspx" target="_blank" title="Kick it!"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://yogesh.jagotagroup.com/blog/post/2008/03/06/Excel-Xml-Library-282-released.aspx&amp;bgcolor=797167" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://yogesh.jagotagroup.com/blog/post/2008/03/06/Excel-Xml-Library-282-released.aspx</link>
      <author>justjammin.nospam@nospam.jagotagroup.com (Yogesh Jagota)</author>
      <comments>http://yogesh.jagotagroup.com/blog/post/2008/03/06/Excel-Xml-Library-282-released.aspx#comment</comments>
      <guid>http://yogesh.jagotagroup.com/blog/post.aspx?id=7f710956-20af-4452-8d99-97d3dc09033b</guid>
      <pubDate>Thu, 06 Mar 2008 19:48:00 +0600</pubDate>
      <category>Excel Xml Library</category>
      <dc:publisher>Yogesh Jagota</dc:publisher>
      <pingback:server>http://yogesh.jagotagroup.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://yogesh.jagotagroup.com/blog/post.aspx?id=7f710956-20af-4452-8d99-97d3dc09033b</pingback:target>
      <slash:comments>10</slash:comments>
      <trackback:ping>http://yogesh.jagotagroup.com/blog/trackback.axd?id=7f710956-20af-4452-8d99-97d3dc09033b</trackback:ping>
      <wfw:comment>http://yogesh.jagotagroup.com/blog/post/2008/03/06/Excel-Xml-Library-282-released.aspx#comment</wfw:comment>
      <wfw:commentRss>http://yogesh.jagotagroup.com/blog/syndication.axd?post=7f710956-20af-4452-8d99-97d3dc09033b</wfw:commentRss>
    </item>
    <item>
      <title>Method level #if #endif of C#: Conditional attribute</title>
      <description>&lt;p&gt;
#if and #endif directives are a common practise used by many programmers to compile code conditionally based on environmental variables. &lt;span&gt;&lt;/span&gt;Another way is to use the &lt;code&gt;Conditional&lt;/code&gt; attribute defined in &lt;code&gt;System.Diagnostics&lt;/code&gt;. The benefit of the C# &lt;code&gt;Conditional&lt;/code&gt; attribute is that it is applied at the method level, which results in source code that is more readable. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Usage:&lt;/strong&gt; &lt;div class="code"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;class&lt;/span&gt; Program&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Main(&lt;span class="kwrd"&gt;string&lt;/span&gt;[] args)&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span class="kwrd"&gt;int&lt;/span&gt; i = 0;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;DebugMethod(&lt;span class="kwrd"&gt;ref&lt;/span&gt; i);&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;i++;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Console.WriteLine(i.ToString());&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;[&lt;span class="preproc"&gt;Conditional&lt;/span&gt;(&amp;quot;DEBUG&amp;quot;)]&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; DebugMethod(&lt;span class="kwrd"&gt;ref&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; i)&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;i++;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt; 
&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;
Conditional attribute&amp;#39;s constructor takes one string parameter which defines the environmental variable to check. You can define environmental variables in &lt;strong&gt;Project Properties&lt;/strong&gt; &amp;gt;&amp;gt; &lt;strong&gt;Build&lt;/strong&gt;. DEBUG is already defined in debug configuration, and TRACE is always defined regardless of any configuration.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;One important thing to note is that the method which is marked using the Conditional attribute must have a return type of void otherwise the code will not compile.&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
In the above example, if DEBUG is defined, the example will print 2, otherwise 1. 
&lt;/p&gt;
&lt;p&gt;
Actually, the above example is more or less equal to the following snippet with #if and #endif:&lt;br /&gt;
&lt;div class="code"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;class&lt;/span&gt; Program&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Main(&lt;span class="kwrd"&gt;string&lt;/span&gt;[] args)&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span class="kwrd"&gt;int&lt;/span&gt; i = 0;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;DebugMethod(&lt;span class="kwrd"&gt;ref&lt;/span&gt; i);&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;i++;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Console.WriteLine(i.ToString());&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; DebugMethod(&lt;span class="kwrd"&gt;ref&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; i)&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="adkw"&gt;#if&lt;/span&gt; DEBUG&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i++;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="preproc"&gt;#endif&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt; 
&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;
but in reality, the compiler removes all the instances where &lt;code&gt;DebugMethod&lt;/code&gt; is called if DEBUG environmental variable is not defined. So the actual IL is equal to:&lt;br /&gt;
&lt;div class="code"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;class&lt;/span&gt; Program&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Main(&lt;span class="kwrd"&gt;string&lt;/span&gt;[] args)&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span class="kwrd"&gt;int&lt;/span&gt; i = 0;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i++;&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Console.WriteLine(i.ToString());&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;} &lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;span class="preproc"&gt;Conditional&lt;/span&gt;(&amp;quot;DEBUG&amp;quot;)]&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; DebugMethod(&lt;span class="kwrd"&gt;ref&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; i)&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;i++;&lt;br /&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt; 
&lt;/p&gt;
&lt;p&gt;
Note that the method is still compiled regardless of whether DEBUG is defined or not. 
&lt;/p&gt;
&lt;p&gt;
You can apply the attribute as many times as you want to a single method, like: 
&lt;/p&gt;
&lt;div class="code"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;[&lt;span class="preproc"&gt;Conditional&lt;/span&gt;(&amp;quot;DEBUG&amp;quot;), &lt;span class="preproc"&gt;Conditional&lt;/span&gt;(&amp;quot;TRACE&amp;quot;)]&lt;/pre&gt;
&lt;/div&gt; 
&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://yogesh.jagotagroup.com/blog/post/2008/03/01/CSharp-Conditional-attribute.aspx&amp;amp;title=Method level #if #endif of C#: Conditional attribute" target="_blank" title="Del.icio.us"&gt;&lt;img src="/blog//socialbookmarks/square/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://yogesh.jagotagroup.com/blog/post/2008/03/01/CSharp-Conditional-attribute.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/blog//socialbookmarks/square/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://yogesh.jagotagroup.com/blog/post/2008/03/01/CSharp-Conditional-attribute.aspx&amp;amp;title=Method level #if #endif of C#: Conditional attribute" target="_blank" title="DZone It!"&gt;&lt;img src="/blog//socialbookmarks/square/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dotnetkicks.com/kick/?url=http://yogesh.jagotagroup.com/blog/post/2008/03/01/CSharp-Conditional-attribute.aspx" target="_blank" title="Kick it!"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://yogesh.jagotagroup.com/blog/post/2008/03/01/CSharp-Conditional-attribute.aspx&amp;bgcolor=797167" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://yogesh.jagotagroup.com/blog/post/2008/03/01/CSharp-Conditional-attribute.aspx</link>
      <author>justjammin.nospam@nospam.jagotagroup.com (Yogesh Jagota)</author>
      <comments>http://yogesh.jagotagroup.com/blog/post/2008/03/01/CSharp-Conditional-attribute.aspx#comment</comments>
      <guid>http://yogesh.jagotagroup.com/blog/post.aspx?id=1716e8ba-897a-4e59-960e-7920346eaf56</guid>
      <pubDate>Sat, 01 Mar 2008 18:34:00 +0600</pubDate>
      <category>C#</category>
      <dc:publisher>Yogesh Jagota</dc:publisher>
      <pingback:server>http://yogesh.jagotagroup.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://yogesh.jagotagroup.com/blog/post.aspx?id=1716e8ba-897a-4e59-960e-7920346eaf56</pingback:target>
      <slash:comments>5</slash:comments>
      <trackback:ping>http://yogesh.jagotagroup.com/blog/trackback.axd?id=1716e8ba-897a-4e59-960e-7920346eaf56</trackback:ping>
      <wfw:comment>http://yogesh.jagotagroup.com/blog/post/2008/03/01/CSharp-Conditional-attribute.aspx#comment</wfw:comment>
      <wfw:commentRss>http://yogesh.jagotagroup.com/blog/syndication.axd?post=1716e8ba-897a-4e59-960e-7920346eaf56</wfw:commentRss>
    </item>
    <item>
      <title>Debugging:  Setting breakpoint options</title>
      <description>&lt;p&gt;
I have came across many people who are programming using Visual Studio but still do not know that there are many debugging options exist. Mostly these people are new to programming, but I have also seen veterans who are uninformed about this life saving feature of Visual Studio. So I thought I should write about the feature. 
&lt;/p&gt;
&lt;p&gt;
You can set a breakpoint by clicking at the extreme left strip of your text editor or press the shortcut F9 key. After a breakpoint is se, you just right click the breakpoint marker of the strip and you are presented with many options, which are: 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://yogesh.jagotagroup.com/blog/image.axd?picture=Menu.jpg" alt="" /&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Location&lt;/strong&gt; shows the point where the current breakpoint is set. It shows current file, line number and character position. The option &amp;quot;Allow the source code...&amp;quot; allows you keep stepping even if you make changes to the source code.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&lt;img src="http://yogesh.jagotagroup.com/blog/image.axd?picture=File+Breakpoint.jpg" alt="" /&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Condition &lt;/strong&gt;allows you to make the breakpoint hit only if a certain condition is hit. In this example, we can make the breakpoint hit when i is equal to 9 making the breakpoint skip the first 8 times when it is reached.
&lt;/p&gt;
&lt;img src="http://yogesh.jagotagroup.com/blog/image.axd?picture=Condition.jpg" alt="" /&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Hit Count &lt;/strong&gt;allows you to make the breakpoint hit only at a given reached count or after a number of times it has been reached.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://yogesh.jagotagroup.com/blog/image.axd?picture=HitCount.jpg" alt="" /&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Filter &lt;/strong&gt;allows you to make the breakpoint hit only when it is reached inside a particular process or thread.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://yogesh.jagotagroup.com/blog/image.axd?picture=Filter.jpg" alt="" /&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;When Breakpoint Is Hit &lt;/strong&gt;option can be described as a post-breakpoint-hit-action type of option. It allows you to set one or more actions to execute when a breakpoint is hit.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://yogesh.jagotagroup.com/blog/image.axd?picture=WhenHit.jpg" alt="" /&gt;
&lt;/p&gt;
&lt;p&gt;
Although I assume most people will know this, if even some people learn anything from this I am happy that I shared this because when I myself started programming using Visual Studio, I did not knew about this option for a long time, almost two months and I wondered how to stop the execution only when the value of x is y. Glad that I did found about it sooner than later.
&lt;/p&gt;
&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://yogesh.jagotagroup.com/blog/post/2008/02/26/Debugging-Setting-breakpoint-options.aspx&amp;amp;title=Debugging:  Setting breakpoint options" target="_blank" title="Del.icio.us"&gt;&lt;img src="/blog//socialbookmarks/square/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://yogesh.jagotagroup.com/blog/post/2008/02/26/Debugging-Setting-breakpoint-options.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/blog//socialbookmarks/square/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://yogesh.jagotagroup.com/blog/post/2008/02/26/Debugging-Setting-breakpoint-options.aspx&amp;amp;title=Debugging:  Setting breakpoint options" target="_blank" title="DZone It!"&gt;&lt;img src="/blog//socialbookmarks/square/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dotnetkicks.com/kick/?url=http://yogesh.jagotagroup.com/blog/post/2008/02/26/Debugging-Setting-breakpoint-options.aspx" target="_blank" title="Kick it!"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://yogesh.jagotagroup.com/blog/post/2008/02/26/Debugging-Setting-breakpoint-options.aspx&amp;bgcolor=797167" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://yogesh.jagotagroup.com/blog/post/2008/02/26/Debugging-Setting-breakpoint-options.aspx</link>
      <author>justjammin.nospam@nospam.jagotagroup.com (Yogesh Jagota)</author>
      <comments>http://yogesh.jagotagroup.com/blog/post/2008/02/26/Debugging-Setting-breakpoint-options.aspx#comment</comments>
      <guid>http://yogesh.jagotagroup.com/blog/post.aspx?id=d807a4bd-2f0d-49ad-95c8-fe714a9b6507</guid>
      <pubDate>Tue, 26 Feb 2008 01:50:00 +0600</pubDate>
      <category>Visual Studio</category>
      <dc:publisher>Yogesh Jagota</dc:publisher>
      <pingback:server>http://yogesh.jagotagroup.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://yogesh.jagotagroup.com/blog/post.aspx?id=d807a4bd-2f0d-49ad-95c8-fe714a9b6507</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://yogesh.jagotagroup.com/blog/trackback.axd?id=d807a4bd-2f0d-49ad-95c8-fe714a9b6507</trackback:ping>
      <wfw:comment>http://yogesh.jagotagroup.com/blog/post/2008/02/26/Debugging-Setting-breakpoint-options.aspx#comment</wfw:comment>
      <wfw:commentRss>http://yogesh.jagotagroup.com/blog/syndication.axd?post=d807a4bd-2f0d-49ad-95c8-fe714a9b6507</wfw:commentRss>
    </item>
  </channel>
</rss>
