<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://geeks.netindonesia.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>mahara&amp;#39;s Tech Blog</title><link>http://geeks.netindonesia.net/blogs/mahara/default.aspx</link><description>Establishing a well-proven state-of-the-art tech.</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>"Bahasa" or "Bahasa Indonesia"?</title><link>http://geeks.netindonesia.net/blogs/mahara/archive/2010/11/14/quot-bahasa-quot-or-quot-bahasa-indonesia-quot.aspx</link><pubDate>Sun, 14 Nov 2010 09:43:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:191334</guid><dc:creator>Maximilian Haru Raditya</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/mahara/rsscomments.aspx?PostID=191334</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/mahara/archive/2010/11/14/quot-bahasa-quot-or-quot-bahasa-indonesia-quot.aspx#comments</comments><description>&lt;p&gt;In Indonesian LIP (Language Interface Pack) for Windows Vista (found &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=0e21eb7b-e01a-4fcc-b7f1-30e419da7f5b&amp;amp;displaylang=id" target="_blank"&gt;here&lt;/a&gt;), I remembered that I found a new translation term called &amp;quot;Bahasa&amp;quot;. So what is &amp;quot;Bahasa&amp;quot;?&lt;/p&gt;&lt;p&gt;I was initially confused when I found that &amp;quot;Bahasa&amp;quot; was a translation term for &amp;quot;Indonesian Language&amp;quot;. Well, it doesn&amp;#39;t make any sense at all to me. Why?&lt;/p&gt;&lt;p&gt;&amp;quot;English&amp;quot; is translated as &amp;quot;Bahasa Inggris&amp;quot;, and vice versa.&amp;nbsp;But why does &amp;quot;Indonesian Language&amp;quot;&amp;nbsp;is translated as &amp;quot;Bahasa&amp;quot;?&lt;/p&gt;&lt;p&gt;I personally prefer &amp;quot;Bahasa Indonesia&amp;quot; to &amp;quot;Bahasa&amp;quot; as a correct translation. If &amp;quot;Bahasa&amp;quot; were preferred, then the opposite translation would become meaningless and&amp;nbsp;confusing: &amp;quot;Language&amp;quot;. Then, the next question (as a result of the confusion) would be: &amp;quot;what language?&amp;quot; That doesn&amp;#39;t seem correct, right? :D&lt;/p&gt;&lt;p&gt;Fortunately, this has been fixed in Indonesian LIP for Windows 7 (found &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=a1a48de1-e264-48d6-8439-ab7139c9c14d&amp;amp;displaylang=id" target="_blank"&gt;here&lt;/a&gt;). It correctly uses &amp;quot;Bahasa Indonesia&amp;quot; term&amp;nbsp;instead of &amp;quot;Bahasa&amp;quot;.&lt;/p&gt;&lt;p&gt;A nice fix. So,&amp;nbsp;thanks MS&amp;nbsp;:D&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/mahara/archive/2010/11/14/quot-bahasa-quot-or-quot-bahasa-indonesia-quot.aspx&amp;amp;subject=&amp;quot;Bahasa&amp;quot; or &amp;quot;Bahasa Indonesia&amp;quot;?" target="_blank" title="Send via email"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/mahara/archive/2010/11/14/quot-bahasa-quot-or-quot-bahasa-indonesia-quot.aspx&amp;amp;t=%26quot%3bBahasa%26quot%3b+or+%26quot%3bBahasa+Indonesia%26quot%3b%3f" target="_blank" title="Submit &amp;quot;Bahasa&amp;quot; or &amp;quot;Bahasa Indonesia&amp;quot;? to DotNetKicks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/mahara/archive/2010/11/14/quot-bahasa-quot-or-quot-bahasa-indonesia-quot.aspx&amp;amp;title=%26quot%3bBahasa%26quot%3b+or+%26quot%3bBahasa+Indonesia%26quot%3b%3f" target="_blank" title="Submit &amp;quot;Bahasa&amp;quot; or &amp;quot;Bahasa Indonesia&amp;quot;? to del.icio.us"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/mahara/archive/2010/11/14/quot-bahasa-quot-or-quot-bahasa-indonesia-quot.aspx&amp;amp;phase=2" target="_blank" title="Submit &amp;quot;Bahasa&amp;quot; or &amp;quot;Bahasa Indonesia&amp;quot;? to digg.com"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/mahara/archive/2010/11/14/quot-bahasa-quot-or-quot-bahasa-indonesia-quot.aspx&amp;amp;title=%26quot%3bBahasa%26quot%3b+or+%26quot%3bBahasa+Indonesia%26quot%3b%3f" target="_blank" title="Add &amp;quot;Bahasa&amp;quot; or &amp;quot;Bahasa Indonesia&amp;quot;? to Live Bookmarks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=191334" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/mahara/archive/tags/Windows/default.aspx">Windows</category><category domain="http://geeks.netindonesia.net/blogs/mahara/archive/tags/Did+You+Know_3F00_/default.aspx">Did You Know?</category><category domain="http://geeks.netindonesia.net/blogs/mahara/archive/tags/Windows+7/default.aspx">Windows 7</category></item><item><title>Getting Started with NDepend</title><link>http://geeks.netindonesia.net/blogs/mahara/archive/2010/04/28/getting-started-with-ndepend.aspx</link><pubDate>Thu, 29 Apr 2010 05:16:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:187019</guid><dc:creator>Maximilian Haru Raditya</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/mahara/rsscomments.aspx?PostID=187019</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/mahara/archive/2010/04/28/getting-started-with-ndepend.aspx#comments</comments><description>&lt;p&gt;Recently this week, &lt;a href="http://codebetter.com/blogs/patricksmacchia/" target="_blank"&gt;Patrick Smacchia&lt;/a&gt; from &lt;a href="http://www.ndepend.com/" target="_blank"&gt;NDepend&lt;/a&gt; contacted me through this blog. He&amp;#39;s a C# MVP and has been kind enough by offering me a professional license of NDepend for free. Yes, it&amp;#39;s a professional one! I think I&amp;#39;ve been lucky enough to receive it &lt;img src="https://geeks.netindonesia.net/emoticons/emotion-1.gif" alt="Smile" /&gt;.&lt;/p&gt;
&lt;p&gt;Honestly, I don&amp;#39;t know much about NDepend. I&amp;#39;ve heard recently people talk about it in some sites and mailing lists. Now that I&amp;#39;ve a license, gives me a chance to try it out and to know it further.&lt;/p&gt;
&lt;p&gt;In the next post, I think I&amp;#39;ll try to cover what is NDepend and what a developer can do with it based on my perspective.&lt;/p&gt;
&lt;p&gt;Until next time, cheers!&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/mahara/archive/2010/04/28/getting-started-with-ndepend.aspx&amp;amp;subject=Getting Started with NDepend" target="_blank" title="Send via email"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/mahara/archive/2010/04/28/getting-started-with-ndepend.aspx&amp;amp;t=Getting+Started+with+NDepend" target="_blank" title="Submit Getting Started with NDepend to DotNetKicks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/mahara/archive/2010/04/28/getting-started-with-ndepend.aspx&amp;amp;title=Getting+Started+with+NDepend" target="_blank" title="Submit Getting Started with NDepend to del.icio.us"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/mahara/archive/2010/04/28/getting-started-with-ndepend.aspx&amp;amp;phase=2" target="_blank" title="Submit Getting Started with NDepend to digg.com"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/mahara/archive/2010/04/28/getting-started-with-ndepend.aspx&amp;amp;title=Getting+Started+with+NDepend" target="_blank" title="Add Getting Started with NDepend to Live Bookmarks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=187019" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/mahara/archive/tags/.NET+Framework/default.aspx">.NET Framework</category></item><item><title>WPF 4.0: List of Features</title><link>http://geeks.netindonesia.net/blogs/mahara/archive/2009/05/29/wpf-4-0-list-of-features.aspx</link><pubDate>Sat, 30 May 2009 02:09:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:181367</guid><dc:creator>Maximilian Haru Raditya</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/mahara/rsscomments.aspx?PostID=181367</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/mahara/archive/2009/05/29/wpf-4-0-list-of-features.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/jaimer/default.aspx" target="_blank"&gt;Jaime Rodriguez&lt;/a&gt; has just written a &lt;a href="http://blogs.msdn.com/jaimer/archive/2009/05/27/wpf-4-and-net-framework-4-beta-1-list-of-features-totrack.aspx" target="_blank"&gt;post&lt;/a&gt; about new WPF 4.0 features we can expect in the upcoming release. He mentioned a lot of new features along with some details.&lt;/p&gt;
&lt;p&gt;Over all of those features, there are some features I&amp;#39;ve been expecting in 4.0 which has not been made into Beta 1. They are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Text Enhancements (this is definitely one of my biggest disappointment in WPF so far, poor me... :()&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Layout Rounding&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Caret Customization&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;I also noticed it will have supports over new Windows 7&amp;#39;s Taskbar and JumpList features. Apparently, it also supports Windows Vista and Windows 7&amp;#39;s native dialogs which I haven&amp;#39;t had a chance to touch yet.&lt;/p&gt;
&lt;p&gt;I think I won&amp;#39;t reiterate the details of the features above, instead you can read yourself in his &lt;a href="http://blogs.msdn.com/jaimer/archive/2009/05/27/wpf-4-and-net-framework-4-beta-1-list-of-features-totrack.aspx" target="_blank"&gt;post&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Hopefully (and desperately hoping :)) they will make it!&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/mahara/archive/2009/05/29/wpf-4-0-list-of-features.aspx&amp;amp;subject=WPF 4.0: List of Features" target="_blank" title="Send via email"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/mahara/archive/2009/05/29/wpf-4-0-list-of-features.aspx&amp;amp;t=WPF+4.0%3a+List+of+Features" target="_blank" title="Submit WPF 4.0: List of Features to DotNetKicks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/mahara/archive/2009/05/29/wpf-4-0-list-of-features.aspx&amp;amp;title=WPF+4.0%3a+List+of+Features" target="_blank" title="Submit WPF 4.0: List of Features to del.icio.us"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/mahara/archive/2009/05/29/wpf-4-0-list-of-features.aspx&amp;amp;phase=2" target="_blank" title="Submit WPF 4.0: List of Features to digg.com"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/mahara/archive/2009/05/29/wpf-4-0-list-of-features.aspx&amp;amp;title=WPF+4.0%3a+List+of+Features" target="_blank" title="Add WPF 4.0: List of Features to Live Bookmarks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=181367" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/mahara/archive/tags/WPF/default.aspx">WPF</category><category domain="http://geeks.netindonesia.net/blogs/mahara/archive/tags/.NET+Framework+4.0/default.aspx">.NET Framework 4.0</category><category domain="http://geeks.netindonesia.net/blogs/mahara/archive/tags/Windows+7/default.aspx">Windows 7</category></item><item><title>A Simple Multicolumn Combo Box in WPF</title><link>http://geeks.netindonesia.net/blogs/mahara/archive/2008/12/10/a-simple-multicolumn-combo-box-in-wpf.aspx</link><pubDate>Wed, 10 Dec 2008 11:54:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:82954</guid><dc:creator>Maximilian Haru Raditya</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/mahara/rsscomments.aspx?PostID=82954</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/mahara/archive/2008/12/10/a-simple-multicolumn-combo-box-in-wpf.aspx#comments</comments><description>&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: the example in this post is using .NET Framework 3.5 SP1, Visual Studio 2008 SP1, and a little bit nuances of C# 3.0 syntax.&lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;A ComboBox...&lt;/strong&gt;&lt;/h3&gt;  &lt;p&gt;One powerfulness of WPF is UI composition. Using UI composition, I can compose a control using other controls. It simply looks like a aggregation, but a proper term used is composition.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: composition and aggregation are different in the lifetime term. In a composition, a parent maintains its children&amp;#39;s lifetime. It means that if the parent were destroyed, all of its children were also destroyed along with it. And this is different from aggregation. Thus, it explains why it&amp;#39;s better named &amp;#39;UI composition&amp;#39;.&lt;/p&gt;  &lt;p&gt;A ComboBox is one of my favorite control for choosing an item from a list of items. Through its popup, it lists all selectable items to choose. By default, it only allows me to display one type of information of the item. It means that it can only display one item&amp;#39;s property for all items. It can simply be achieved by assigning the ComboxBox.DisplayMemberPath to the item&amp;#39;s property name.&lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;The Challenge&lt;/strong&gt;&lt;/h3&gt;  &lt;p&gt;To make things clearer, consider the following example.&lt;/p&gt;  &lt;h4&gt;&lt;strong&gt;The Goal&lt;/strong&gt;&lt;/h4&gt;  &lt;p&gt;I want to display a list of persons in two ComboBoxes. In the first ComboBox, I just want to display the person&amp;#39;s name, while in the second one, I want to display the person&amp;#39;s name and birthdate.&lt;/p&gt;  &lt;p&gt;Thus, I have to prepare things to achieve that goal.&lt;/p&gt;  &lt;h4&gt;&lt;strong&gt;The Steps&lt;/strong&gt;&lt;/h4&gt;  &lt;p&gt;First, I have a Person class which has two properties: Name and Birthdate:&lt;/p&gt;  &lt;div style="border-bottom:gray 1px solid;border-left:gray 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;max-height:200px;font-size:8pt;overflow:auto;border-top:gray 1px solid;cursor:text;border-right:gray 1px solid;padding-top:4px;"&gt;   &lt;div style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;     &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Person&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; Person()&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   4:&lt;/span&gt;     {&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   5:&lt;/span&gt;     }&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   6:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   7:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Name { get; set; }&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   8:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; DateTime Birthdate { get; set; }&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   9:&lt;/span&gt; }&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Then, I also have a list of persons defined as follow.&lt;/p&gt;

&lt;div style="border-bottom:gray 1px solid;border-left:gray 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;max-height:200px;font-size:8pt;overflow:auto;border-top:gray 1px solid;cursor:text;border-right:gray 1px solid;padding-top:4px;"&gt;
  &lt;div style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;
    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt; ObservableCollection&amp;lt;Person&amp;gt; persons = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; ObservableCollection&amp;lt;Person&amp;gt;&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt;                                            {&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt;                                                &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Person {Name = &lt;span style="color:#006080;"&gt;&amp;quot;Alice&amp;quot;&lt;/span&gt;, Birthdate = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; DateTime(2000, 1, 1)},&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   4:&lt;/span&gt;                                                &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Person {Name = &lt;span style="color:#006080;"&gt;&amp;quot;Alice&amp;quot;&lt;/span&gt;, Birthdate = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; DateTime(2004, 1, 1)},&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   5:&lt;/span&gt;                                                &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Person {Name = &lt;span style="color:#006080;"&gt;&amp;quot;Bob&amp;quot;&lt;/span&gt;, Birthdate = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; DateTime(2000, 1, 1)},&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   6:&lt;/span&gt;                                                &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Person {Name = &lt;span style="color:#006080;"&gt;&amp;quot;Charlie&amp;quot;&lt;/span&gt;, Birthdate = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; DateTime(2000, 1, 1)}&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   7:&lt;/span&gt;                                            };&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Notice that there are two persons named Alice but they have different birthdates. Based on this situation, if I were using single column ComboBox, it&amp;#39;s hard for me to choose which Alice I want since it would only display the person&amp;#39;s name. Thus, I need further information about the person information to be displayed. And this comes where a multicolumn ComboBox is needed to show additional required information. By displaying additional information about the person in the second ComboBox, which turns out to be the person&amp;#39;s birthdate, I can now make a clear decision about which Alice I want to choose.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;So next, I have the following UI representations in XAML (defined in a Window). It basically creates two ComboBoxes named &amp;#39;comboBox&amp;#39; and &amp;#39;multicolumnComboBox&amp;#39; respectively.&lt;/p&gt;

&lt;div style="border-bottom:gray 1px solid;border-left:gray 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;max-height:200px;font-size:8pt;overflow:auto;border-top:gray 1px solid;cursor:text;border-right:gray 1px solid;padding-top:4px;"&gt;
  &lt;div style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;
    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;StackPanel&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Margin&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;10&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Label&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;A ComboBox&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Label&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;ComboBox&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;x:Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;comboBox&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;ComboBox&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   4:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Separator&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Margin&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;0, 20, 0, 10&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   5:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Label&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;A Multicolumn ComboBox&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Label&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   6:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;ComboBox&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;x:Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;multicolumnComboBox&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   7:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;ComboBox.ItemTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   8:&lt;/span&gt;             &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;DataTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   9:&lt;/span&gt;                 &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;StackPanel&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Orientation&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Horizontal&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;  10:&lt;/span&gt;                     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;TextBlock&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;{Binding Name}&amp;quot;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;  11:&lt;/span&gt;                                &lt;span style="color:#ff0000;"&gt;Width&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;150&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;  12:&lt;/span&gt;                     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;TextBlock&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;{Binding Birthdate, StringFormat=d MMMM yyyy}&amp;quot;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;  13:&lt;/span&gt;                                &lt;span style="color:#ff0000;"&gt;Width&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;100&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;  14:&lt;/span&gt;                 &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;  15:&lt;/span&gt;             &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;DataTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;  16:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;ComboBox.ItemTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;  17:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;ComboBox&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;  18:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;The first ComboBox declaration, named &amp;#39;comboBox&amp;#39;, looks very simple. While the second one, named &amp;#39;multicolumnComboBox&amp;#39;, now looks like hell :D. So, what the hell is that?&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Another WPF powerfulness is UI customization. Through customization, a control can be customized to look like to whatever it should look like. UI customization can be achieved using: (1) styles, (2) templates, (3) skins, and (4) themes (Adam Nathan explains them better in his book entitled &amp;#39;Windows Presentation Foundation Unleashed&amp;#39;).&lt;/p&gt;

&lt;p&gt;In the example above, the multicolumn ComboBox UI customization is achieved using templates, specifically DataTemplate (other than ControlTemplate). A ComboBox has a dependency property named ItemTemplate (it is actually derived from ItemsControl). It can be used to customize each item appearance in its box (if ComboBox.IsEditable set to false) and popup. As the goal mentioned before, for the second ComboBox (the multicolumn one), I want to display both person&amp;#39;s name and birthdate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: using ComboBox.DisplayMemberPath may not be adequate to achieve the goal in a neat way (it&amp;#39;s probably can be accomplished also using MultiBinding and its StringFormat property, but let it be another case :)).&lt;/p&gt;

&lt;p&gt;That way, I then create a horizontal StackPanel (which can be visualized as a table) and two TextBlocks (which each can be visualized as a table&amp;#39;s column). The first column holds the person&amp;#39;s name information and the second one holds the person&amp;#39;s birthdate. In order to make them look like columns, I have to set their respective Width manually. The way StackPanel and TextBlocks declared actually shows an example of a UI composition. The StackPanel is the parent and the two TextBlocks are the parent&amp;#39;s children.&lt;/p&gt;

&lt;p&gt;Finally, let&amp;#39;s bind the data (the Model in MVC) to the UI (the View in MVC) so that it looks like this:&lt;/p&gt;

&lt;div style="border-bottom:gray 1px solid;border-left:gray 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;max-height:200px;font-size:8pt;overflow:auto;border-top:gray 1px solid;cursor:text;border-right:gray 1px solid;padding-top:4px;"&gt;
  &lt;div style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;
    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt; CollectionView collectionView = (CollectionView) CollectionViewSource.GetDefaultView(persons);&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.comboBox.ItemsSource = collectionView;&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   4:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.comboBox.DisplayMemberPath = &lt;span style="color:#006080;"&gt;&amp;quot;Name&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   5:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   6:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.multicolumnComboBox.ItemsSource = collectionView;&lt;/pre&gt;

    &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;"&gt;   7:&lt;/span&gt; TextSearch.SetTextPath(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.multicolumnComboBox, &lt;span style="color:#006080;"&gt;&amp;quot;Name&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Notice that I&amp;#39;m using a CollectionView as a virtual data source of the person list defined before. It might look like an overhead but there&amp;#39;s a reason it is put there. Anyway, for this post, let&amp;#39;s ignore it and pretend that I actually bind the ComboBox.ItemsSource property directly to the person list. Also notice that for the first ComboBox, I set the ComboBox.DisplayMemberPath property to represent the person&amp;#39;s name&amp;#39;s property name (defined in the Person class definition). While for the second one, I set nothing other than the ItemsSource.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: using ComboBox.DisplayMemberPath and ComboBox.ItemTemplate is a choice. If you use one, you cannot use the other one or the ComboBox will throw an exception. Thus, you cannot use both at the same time. (&lt;strong&gt;UPDATE&lt;/strong&gt;: 15/4/2009) In the last case, in order to allow user to search the item when IsEditable is set true, you can use TextSearch.SetTextPath() to achieve the goal.&lt;/p&gt;

&lt;h4&gt;&lt;strong&gt;The Result&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;And voilà, the overall application looks like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://geeks.netindonesia.net/blogs/mahara/WindowsLiveWriter/ASimpleWPFMulticolumnCombobox_E73A/MainWindow_2.png"&gt;&lt;img style="border-right-width:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" border="0" alt="MainWindow" src="https://geeks.netindonesia.net/blogs/mahara/WindowsLiveWriter/ASimpleWPFMulticolumnCombobox_E73A/MainWindow_thumb.png" width="244" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;The first ComboBox looks like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://geeks.netindonesia.net/blogs/mahara/WindowsLiveWriter/ASimpleWPFMulticolumnCombobox_E73A/ComboBox_4.png"&gt;&lt;img style="border-right-width:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" border="0" alt="ComboBox" src="https://geeks.netindonesia.net/blogs/mahara/WindowsLiveWriter/ASimpleWPFMulticolumnCombobox_E73A/ComboBox_thumb_1.png" width="244" height="85" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;And the second one looks like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://geeks.netindonesia.net/blogs/mahara/WindowsLiveWriter/ASimpleWPFMulticolumnCombobox_E73A/MulticolumnComboBox_6.png"&gt;&lt;img style="border-right-width:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" border="0" alt="MulticolumnComboBox" src="https://geeks.netindonesia.net/blogs/mahara/WindowsLiveWriter/ASimpleWPFMulticolumnCombobox_E73A/MulticolumnComboBox_thumb_2.png" width="244" height="85" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Notice that the second ComboBox now looks like having a table with two columns (except without column headers, and that&amp;#39;s why it is called &amp;#39;simple&amp;#39; :)) inside its popup. It should be neat, I think :).&lt;/p&gt;

&lt;h3&gt;&lt;strong&gt;Closing Thoughts&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;A new UI look of a control can be achieved using UI customization and composition in WPF. It should be easy and straightforward (in most trivial cases, up until you find gotchas :D). The example in this post shows another usage perspective of a ComboBox of being a multicolumn one instead of a single column one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: get the source code&lt;/p&gt;
&lt;iframe style="border-bottom:#dde5e9 1px solid;border-left:#dde5e9 1px solid;padding-bottom:0px;background-color:#ffffff;margin:3px;padding-left:0px;width:240px;padding-right:0px;height:66px;border-top:#dde5e9 1px solid;border-right:#dde5e9 1px solid;padding-top:0px;" src="http://cid-4b718663b826ff76.skydrive.live.com/embedrowdetail.aspx/Public/WpfComboBoxSamplesApplication.zip" frameborder="0"&gt;&lt;/iframe&gt;

&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;: (15/4/2009) fix a bug with multicolumn combo box when IsEditable is set true. Thanks to Rakesh Kumar for finding out this.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/mahara/archive/2008/12/10/a-simple-multicolumn-combo-box-in-wpf.aspx&amp;amp;subject=A Simple Multicolumn Combo Box in WPF" target="_blank" title="Send via email"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/mahara/archive/2008/12/10/a-simple-multicolumn-combo-box-in-wpf.aspx&amp;amp;t=A+Simple+Multicolumn+Combo+Box+in+WPF" target="_blank" title="Submit A Simple Multicolumn Combo Box in WPF to DotNetKicks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/mahara/archive/2008/12/10/a-simple-multicolumn-combo-box-in-wpf.aspx&amp;amp;title=A+Simple+Multicolumn+Combo+Box+in+WPF" target="_blank" title="Submit A Simple Multicolumn Combo Box in WPF to del.icio.us"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/mahara/archive/2008/12/10/a-simple-multicolumn-combo-box-in-wpf.aspx&amp;amp;phase=2" target="_blank" title="Submit A Simple Multicolumn Combo Box in WPF to digg.com"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/mahara/archive/2008/12/10/a-simple-multicolumn-combo-box-in-wpf.aspx&amp;amp;title=A+Simple+Multicolumn+Combo+Box+in+WPF" target="_blank" title="Add A Simple Multicolumn Combo Box in WPF to Live Bookmarks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=82954" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/mahara/archive/tags/.NET+Framework+3.5/default.aspx">.NET Framework 3.5</category><category domain="http://geeks.netindonesia.net/blogs/mahara/archive/tags/WPF/default.aspx">WPF</category></item><item><title>My WPF Learning Experience</title><link>http://geeks.netindonesia.net/blogs/mahara/archive/2008/12/09/my-wpf-learning-experience.aspx</link><pubDate>Wed, 10 Dec 2008 04:20:38 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:82904</guid><dc:creator>Maximilian Haru Raditya</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/mahara/rsscomments.aspx?PostID=82904</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/mahara/archive/2008/12/09/my-wpf-learning-experience.aspx#comments</comments><description>&lt;p&gt;For the past several months, my WPF learning experience has been a steep curve; stepping far ahead from Windows Forms. At first, I thought it would be as easy as learning Windows Forms. But it turned out that I was wrong :D. The deeper I dig, the more challenging it is.&lt;/p&gt; &lt;p&gt;I think there are couple of things I&amp;#39;ve learned so far that I&amp;#39;d like to share here. Please note that this post is a highly overview. Do think of it as you are viewing an island from a helicopter or plane far above it (the &amp;#39;helicopter view&amp;#39; term, right?). The details can be saved for later (in the form of questions, feedbacks, or later posts, I think :)).&lt;/p&gt; &lt;p&gt;OK, so here they are.&lt;/p&gt; &lt;h4&gt;&lt;strong&gt;From [code] to [XAML and code] and from [XAML and code] to [XAML versus code]&lt;/strong&gt;&lt;/h4&gt; &lt;p&gt;NOTE: code here refers to programming code.&lt;/p&gt; &lt;p&gt;There was no declarative presentation language to be used with Windows Forms before XAML, at least in my experience with it so far. Its UI representations are all made using code. However, in WPF things are quite different now with the introduction of XAML (although XAML can also be used to define a Windows Forms application, but that&amp;#39;s not the case before it).&lt;/p&gt; &lt;p&gt;XAML stands for e&lt;strong&gt;X&lt;/strong&gt;tensible &lt;strong&gt;A&lt;/strong&gt;pplication &lt;strong&gt;M&lt;/strong&gt;arkup &lt;strong&gt;L&lt;/strong&gt;anguage (and I won&amp;#39;t go explaining it in details here.) Basically, it&amp;#39;s just a declarative language since it&amp;#39;s an XML. But in WPF, it goes further to be used to define UI representations (UI structures). More or less, it&amp;#39;s sort of similar with HTML or ASP.NET language in web-based application development. The point is that the UI representations can now be written using XAML and/or code. Further, it can be easily leveraged into an MV (Model-View) pattern (I haven&amp;#39;t explored the C (Controller) part yet to make it MVC completely).&lt;/p&gt; &lt;p&gt;Next, after its diverse approach invented (XAML and code), an obvious question approach arises in my mind: when to use XAML and when to use code? I haven&amp;#39;t had an exact guide on this yet, especially since I&amp;#39;m currently stuck dealing with UI visual inheritance using WPF (visual) designer and it seems there is still no proper solution. So, I use both interchangeably, depends on the need.&lt;/p&gt; &lt;p&gt;NOTE: UI visual inheritance is still challenging both in Windows Forms and WPF when using their own (visual) designers. In Windows Forms, you can use visual inheritance in its designer with limitation (on changing a base control&amp;#39;s properties&amp;#39; value). In WPF, I have no idea and I&amp;#39;m still struggling for it. A workaround I can think of is by using user control (same as in Windows Forms) or just copy-paste the same XAML block over different Windows/Pages but it&amp;#39;s still not a visual inheritance :(.&lt;/p&gt; &lt;h4&gt;&lt;strong&gt;From a procedural-based perspective (Windows Forms) to a property-based one (WPF) &lt;/strong&gt;&lt;/h4&gt; &lt;p&gt;An obvious example of procedural-based perspective in Windows Forms is the use of OnPaint(). It is a completely a different approach compared to the use of dependency property in WPF. The latter is closer to the object-oriented mind set. With OnPaint(), it ends up with writing all presentation logics in one big step by checking every possible UI states. Yet, it&amp;#39;s simply complex.&lt;/p&gt; &lt;p&gt;NOTE: I&amp;#39;ve never written any Windows Forms-based controls nor user controls from the scratch; and never intended to but already modified existing ones (it&amp;#39;s even if and only if really really necessary). So, my statement above should be considered as an approximation based on my analysis of codes written by others.&lt;/p&gt; &lt;p&gt;Further, I think the former is a centralized approach compared to the latter, which is a decentralized and distributed one. However, the latter approach could also make life harder if not carefully used, especially when writing a new derived control (or user control). I&amp;#39;m especially still digging in this area and it is challenging so far. And it definitely blows my mind!&lt;/p&gt; &lt;h4&gt;&lt;strong&gt;From a property to a dependency property&lt;/strong&gt;&lt;/h4&gt; &lt;p&gt;At my first glimpse of a dependency property, it just looked like an standard and ordinary property, although I was confused with the &amp;#39;dependency&amp;#39; term for awhile. When in the code mode (as opposed to in the XAML mode), it still has the get and set methods. Its (suggested) implementation is quite different but in a consistent manner across all others.&lt;/p&gt; &lt;p&gt;Using C# 2.0, a property&amp;#39;s declaration looks like this:&lt;/p&gt; &lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;"&gt; &lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt; _isReadOnly;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt; IsReadOnly&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   4:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   5:&lt;/span&gt;     get { &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;._isReadOnly; }&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   6:&lt;/span&gt;     set { &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;._isReadOnly = &lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;; }&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   7:&lt;/span&gt; }&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;While a dependency property&amp;#39;s declaration looks like this:&lt;/p&gt;
&lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;"&gt;
&lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;readonly&lt;/span&gt; DependencyProperty IsReadOnlyProperty = DependencyProperty.Register(&lt;span style="color:#006080;"&gt;&amp;quot;IsReadOnly&amp;quot;&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt; (&lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt;), &lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt; (DerivedButton));&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt; IsReadOnly&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   4:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   5:&lt;/span&gt;     get { &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; (&lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt;) &lt;span style="color:#0000ff;"&gt;base&lt;/span&gt;.GetValue(IsReadOnlyProperty); }&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   6:&lt;/span&gt;     set { &lt;span style="color:#0000ff;"&gt;base&lt;/span&gt;.SetValue(IsReadOnlyProperty, &lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;); }&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   7:&lt;/span&gt; }&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Wow! So now, it doesn&amp;#39;t look as simple as an ordinary property&amp;#39;s declaration, right? Two important things I notice with a dependency property are (1) there is now a static field used for its metadata definition (including its type, the owner&amp;#39;s type, and some others, such as its default value and more including property handler methods (defines the property&amp;#39;s behavior)), and (2) there&amp;#39;s no field should be used as a back field since it&amp;#39;s now replaced with the use of base.GetValue() and base.SetValue() methods, derived from DependencyObject class.&lt;/p&gt;
&lt;p&gt;Of course, a dependency property is much deeper than the above explanation, for the reasons it has to be invented other than using a (standard) property. One important thing I note is that a property triggers behaviors, especially when its value is changed. Thus, there are behaviors depend on its value and are also triggered by. That&amp;#39;s what I think about why it&amp;#39;s named &amp;#39;dependency property&amp;#39;.&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;Closing thoughts&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;I think those are some important things I have been learning after dealing with WPF up until now. There are many others but I think they are enough for now. They no need to be summarized. Up until now, I do still think it takes some (or maybe a lot time) for me to switch into the WPF mind set and it&amp;#39;s a really huge step for me.&lt;/p&gt;
&lt;p&gt;I&amp;#39;m just in the middle of the journey and I still learn a lot. I think WPF is a very great stuff and has been being prepared for the next generation of UI on Windows platforms (as its name implies: Windows Presentation Foundation), though it has been still immature. And I can&amp;#39;t wait for the next WPF improvement Microsoft will bring in the .NET Framework 4.0.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/mahara/archive/2008/12/09/my-wpf-learning-experience.aspx&amp;amp;subject=My WPF Learning Experience" target="_blank" title="Send via email"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/mahara/archive/2008/12/09/my-wpf-learning-experience.aspx&amp;amp;t=My+WPF+Learning+Experience" target="_blank" title="Submit My WPF Learning Experience to DotNetKicks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/mahara/archive/2008/12/09/my-wpf-learning-experience.aspx&amp;amp;title=My+WPF+Learning+Experience" target="_blank" title="Submit My WPF Learning Experience to del.icio.us"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/mahara/archive/2008/12/09/my-wpf-learning-experience.aspx&amp;amp;phase=2" target="_blank" title="Submit My WPF Learning Experience to digg.com"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/mahara/archive/2008/12/09/my-wpf-learning-experience.aspx&amp;amp;title=My+WPF+Learning+Experience" target="_blank" title="Add My WPF Learning Experience to Live Bookmarks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=82904" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/mahara/archive/tags/.NET+Framework+3.5/default.aspx">.NET Framework 3.5</category><category domain="http://geeks.netindonesia.net/blogs/mahara/archive/tags/WPF/default.aspx">WPF</category></item><item><title>Secure Gmail Access</title><link>http://geeks.netindonesia.net/blogs/mahara/archive/2007/01/18/Secure-Gmail-Access.aspx</link><pubDate>Fri, 19 Jan 2007 02:49:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:14483</guid><dc:creator>Maximilian Haru Raditya</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/mahara/rsscomments.aspx?PostID=14483</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/mahara/archive/2007/01/18/Secure-Gmail-Access.aspx#comments</comments><description>&lt;p&gt;Maybe it&amp;#39;s just an old tip but I just want to reiterate it.&lt;/p&gt;&lt;p&gt;Basically, try to use [https] instead of [http] when acessing gmail because using [https] your communication line is encrypted using SSL (Secure Socket Layer) technology. So practically, you can (or perhaps should) access Gmail securely using the following address:&lt;/p&gt;&lt;p&gt;&lt;a href="https://gmail.google.com/"&gt;https://gmail.google.com&lt;/a&gt;&amp;nbsp;OR &lt;a href="https://mail.google.com/mail"&gt;https://mail.google.com/mail&lt;/a&gt;&lt;/p&gt;&lt;p&gt;instead of&lt;/p&gt;&lt;p&gt;&lt;a href="http://gmail.google.com/"&gt;http://gmail.google.com&lt;/a&gt; OR &lt;a href="http://mail.google.com/mail"&gt;http://mail.google.com/mail&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;[References]&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://lifehacker.com/software/gmail/secure-gmail-access-on-public-networks-228722.php"&gt;http://lifehacker.com/software/gmail/secure-gmail-access-on-public-networks-228722.php&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.friedbeef.com/2007/01/10/how-access-gmail-securely-on-a-public-wifi-network/"&gt;http://www.friedbeef.com/2007/01/10/how-access-gmail-securely-on-a-public-wifi-network/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/mahara/archive/2007/01/18/Secure-Gmail-Access.aspx&amp;amp;subject=Secure Gmail Access" target="_blank" title="Send via email"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/mahara/archive/2007/01/18/Secure-Gmail-Access.aspx&amp;amp;t=Secure+Gmail+Access" target="_blank" title="Submit Secure Gmail Access to DotNetKicks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/mahara/archive/2007/01/18/Secure-Gmail-Access.aspx&amp;amp;title=Secure+Gmail+Access" target="_blank" title="Submit Secure Gmail Access to del.icio.us"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/mahara/archive/2007/01/18/Secure-Gmail-Access.aspx&amp;amp;phase=2" target="_blank" title="Submit Secure Gmail Access to digg.com"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/mahara/archive/2007/01/18/Secure-Gmail-Access.aspx&amp;amp;title=Secure+Gmail+Access" target="_blank" title="Add Secure Gmail Access to Live Bookmarks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=14483" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/mahara/archive/tags/Did+You+Know_3F00_/default.aspx">Did You Know?</category><category domain="http://geeks.netindonesia.net/blogs/mahara/archive/tags/Security/default.aspx">Security</category></item><item><title>Merry Xmas 2006 and Happy New Year 2007</title><link>http://geeks.netindonesia.net/blogs/mahara/archive/2006/12/23/Merry-Xmas-2006-and-Happy-New-Year-2007.aspx</link><pubDate>Sun, 24 Dec 2006 03:23:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:13918</guid><dc:creator>Maximilian Haru Raditya</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/mahara/rsscomments.aspx?PostID=13918</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/mahara/archive/2006/12/23/Merry-Xmas-2006-and-Happy-New-Year-2007.aspx#comments</comments><description>&lt;div&gt;&lt;font face="trebuchet ms" size="6"&gt;&lt;strong&gt;&lt;font color="#3333ff"&gt;M&lt;/font&gt;&lt;font color="#ff0000"&gt;e&lt;/font&gt;&lt;font color="#ffcc00"&gt;r&lt;/font&gt;&lt;font color="#3333ff"&gt;r&lt;/font&gt;&lt;font color="#009900"&gt;y&lt;/font&gt; &lt;font color="#ff0000"&gt;X&lt;/font&gt;&lt;font color="#3333ff"&gt;m&lt;/font&gt;&lt;font color="#ff0000"&gt;a&lt;/font&gt;&lt;font color="#ffcc00"&gt;s&lt;/font&gt; &lt;font color="#3333ff"&gt;2&lt;/font&gt;&lt;font color="#009900"&gt;0&lt;/font&gt;&lt;font color="#ff0000"&gt;0&lt;/font&gt;&lt;font color="#3333ff"&gt;6&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face="times new roman,serif"&gt;(if you celebrate it)&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&amp;amp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;font size="6"&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;H&lt;/font&gt;&lt;font color="#ffcc00"&gt;a&lt;/font&gt;&lt;font color="#3333ff"&gt;p&lt;/font&gt;&lt;font color="#009900"&gt;p&lt;/font&gt;&lt;font color="#ff0000"&gt;y&lt;/font&gt; &lt;font color="#3333ff"&gt;N&lt;/font&gt;&lt;font color="#ff0000"&gt;e&lt;/font&gt;&lt;font color="#ffcc00"&gt;w&lt;/font&gt; &lt;font color="#3333ff"&gt;Y&lt;/font&gt;&lt;font color="#009900"&gt;e&lt;/font&gt;&lt;font color="#ff0000"&gt;a&lt;/font&gt;&lt;font color="#3333ff"&gt;r&lt;/font&gt; &lt;font color="#ff0000"&gt;2&lt;/font&gt;&lt;font color="#ffcc00"&gt;0&lt;/font&gt;&lt;font color="#3333ff"&gt;0&lt;/font&gt;&lt;font color="#33cc00"&gt;7&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;font face="times new roman,serif"&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face="times new roman,serif"&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face="times new roman,serif"&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face="times new roman,serif"&gt;May God&amp;#39;s&amp;nbsp;&lt;font face="arial,sans-serif" size="4"&gt;&lt;strong&gt;love &lt;/strong&gt;&lt;/font&gt;stay &lt;font face="arial,sans-serif" size="4"&gt;&lt;font size="2"&gt;restlessly&lt;/font&gt; &lt;/font&gt;in our deepest &lt;strong&gt;heart &lt;/strong&gt;and &lt;strong&gt;mind&lt;/strong&gt;...&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;font face="times new roman,serif"&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face="times new roman,serif"&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face="times new roman,serif"&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face="times new roman,serif"&gt;May the &lt;font face="arial,sans-serif" size="4"&gt;peace &lt;/font&gt;stay &lt;font face="courier new,monospace"&gt;restlessly &lt;/font&gt;in this &lt;font face="verdana"&gt;&lt;span class="ppt" id="_user_lsik_trainee@googlegroups.com"&gt;&lt;u&gt;world&lt;/u&gt;&lt;/span&gt;&lt;/font&gt;...&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;font face="times new roman,serif"&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face="times new roman,serif"&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face="times new roman,serif"&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face="times new roman,serif"&gt;And let&amp;#39;s &lt;strong&gt;thank &lt;/strong&gt;&lt;font face="trebuchet ms" size="4"&gt;God &lt;/font&gt;for all He had &lt;font face="courier new,monospace"&gt;given &lt;/font&gt;to us...&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;font face="times new roman,serif"&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face="times new roman,serif"&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face="times new roman,serif"&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face="times new roman,serif"&gt;Happy &lt;font size="4"&gt;holidays&lt;/font&gt;!&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/mahara/archive/2006/12/23/Merry-Xmas-2006-and-Happy-New-Year-2007.aspx&amp;amp;subject=Merry Xmas 2006 and Happy New Year 2007" target="_blank" title="Send via email"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/mahara/archive/2006/12/23/Merry-Xmas-2006-and-Happy-New-Year-2007.aspx&amp;amp;t=Merry+Xmas+2006+and+Happy+New+Year+2007" target="_blank" title="Submit Merry Xmas 2006 and Happy New Year 2007 to DotNetKicks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/mahara/archive/2006/12/23/Merry-Xmas-2006-and-Happy-New-Year-2007.aspx&amp;amp;title=Merry+Xmas+2006+and+Happy+New+Year+2007" target="_blank" title="Submit Merry Xmas 2006 and Happy New Year 2007 to del.icio.us"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/mahara/archive/2006/12/23/Merry-Xmas-2006-and-Happy-New-Year-2007.aspx&amp;amp;phase=2" target="_blank" title="Submit Merry Xmas 2006 and Happy New Year 2007 to digg.com"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/mahara/archive/2006/12/23/Merry-Xmas-2006-and-Happy-New-Year-2007.aspx&amp;amp;title=Merry+Xmas+2006+and+Happy+New+Year+2007" target="_blank" title="Add Merry Xmas 2006 and Happy New Year 2007 to Live Bookmarks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=13918" width="1" height="1"&gt;</description></item><item><title>Windows Live Messenger and Yahoo! Messenger Interoperability</title><link>http://geeks.netindonesia.net/blogs/mahara/archive/2006/07/14/10245.aspx</link><pubDate>Fri, 14 Jul 2006 11:09:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:10245</guid><dc:creator>Maximilian Haru Raditya</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/mahara/rsscomments.aspx?PostID=10245</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/mahara/archive/2006/07/14/10245.aspx#comments</comments><description>&lt;P&gt;Knowing the fact that Trilian has already done this since several years ago may not thrill you, but&amp;nbsp;it surprises me a lot knowing that the INITIATIVE came directly from the service providers themself: Microsoft and Yahoo!&lt;/P&gt;
&lt;P&gt;So, I can clearly see there's no such third parties reside between, like Trilian (and others I'm not aware of).&lt;/P&gt;
&lt;P&gt;For now, if you're using Windows Live Messenger 8.0 (I'm currently using version 8.0.0792.00), go directly signing in yourself here:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://ideas.live.com/programpage.aspx?versionId=7adb59de-a857-45ba-81cc-685ee3e858fe"&gt;http://ideas.live.com/programpage.aspx?versionId=7adb59de-a857-45ba-81cc-685ee3e858fe&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;and/or&lt;/P&gt;
&lt;P&gt;if you're using Yahoo! Messenger (I'm currently using Yahoo! Messenger with Voice BETA version 8.0.0.506), go signing in yourself directly here:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://messenger.yahoo.com/partners_msn.php;_ylt=AkkG5kKAwQD3Fq1YKTaOJNtwMMIF"&gt;http://messenger.yahoo.com/partners_msn.php;_ylt=AkkG5kKAwQD3Fq1YKTaOJNtwMMIF&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;I have tried them myself and they simply work great. I can even Nudge [WLM's term] or Buzz!!! [YM's term]. Just try it out yourself!&lt;/P&gt;
&lt;P&gt;Personally, I'd like to say: it's about combining the best of breed!&lt;/P&gt;
&lt;P&gt;BTW, I can be contacted through:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="mailto:m4h4r4___@___gmail.com"&gt;m4h4r4___@___gmail.com&lt;/A&gt; 
&lt;LI&gt;&lt;A href="mailto:m4h4r4___@___yahoo.co.uk"&gt;m4h4r4___@___yahoo.co.uk&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Don't forget to remove the underscores.&lt;/P&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/mahara/archive/2006/07/14/10245.aspx&amp;amp;subject=Windows Live Messenger and Yahoo! Messenger Interoperability" target="_blank" title="Send via email"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/mahara/archive/2006/07/14/10245.aspx&amp;amp;t=Windows+Live+Messenger+and+Yahoo!+Messenger+Interoperability" target="_blank" title="Submit Windows Live Messenger and Yahoo! Messenger Interoperability to DotNetKicks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/mahara/archive/2006/07/14/10245.aspx&amp;amp;title=Windows+Live+Messenger+and+Yahoo!+Messenger+Interoperability" target="_blank" title="Submit Windows Live Messenger and Yahoo! Messenger Interoperability to del.icio.us"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/mahara/archive/2006/07/14/10245.aspx&amp;amp;phase=2" target="_blank" title="Submit Windows Live Messenger and Yahoo! Messenger Interoperability to digg.com"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/mahara/archive/2006/07/14/10245.aspx&amp;amp;title=Windows+Live+Messenger+and+Yahoo!+Messenger+Interoperability" target="_blank" title="Add Windows Live Messenger and Yahoo! Messenger Interoperability to Live Bookmarks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=10245" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/mahara/archive/tags/Did+You+Know_3F00_/default.aspx">Did You Know?</category></item><item><title>WCF Breaking Changes between BETA2 and June CTP</title><link>http://geeks.netindonesia.net/blogs/mahara/archive/2006/07/08/wcf-breaking-changes-between-beta2-and-june-ctp.aspx</link><pubDate>Sun, 09 Jul 2006 02:05:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:10201</guid><dc:creator>Maximilian Haru Raditya</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/mahara/rsscomments.aspx?PostID=10201</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/mahara/archive/2006/07/08/wcf-breaking-changes-between-beta2-and-june-ctp.aspx#comments</comments><description>&lt;p&gt;Here&amp;#39;s the breaking changes:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://wcf.netfx3.com/content/BreakingChangesbetweenVistaBeta2andJuneCTP.aspx"&gt;http://wcf.netfx3.com/content/BreakingChangesbetweenVistaBeta2andJuneCTP.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;and here&amp;#39;s the detail API changes:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://wcf.netfx3.com/files/folders/4097/download.aspx"&gt;http://wcf.netfx3.com/files/folders/4097/download.aspx&lt;/a&gt;.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/mahara/archive/2006/07/08/wcf-breaking-changes-between-beta2-and-june-ctp.aspx&amp;amp;subject=WCF Breaking Changes between BETA2 and June CTP" target="_blank" title="Send via email"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/mahara/archive/2006/07/08/wcf-breaking-changes-between-beta2-and-june-ctp.aspx&amp;amp;t=WCF+Breaking+Changes+between+BETA2+and+June+CTP" target="_blank" title="Submit WCF Breaking Changes between BETA2 and June CTP to DotNetKicks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/mahara/archive/2006/07/08/wcf-breaking-changes-between-beta2-and-june-ctp.aspx&amp;amp;title=WCF+Breaking+Changes+between+BETA2+and+June+CTP" target="_blank" title="Submit WCF Breaking Changes between BETA2 and June CTP to del.icio.us"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/mahara/archive/2006/07/08/wcf-breaking-changes-between-beta2-and-june-ctp.aspx&amp;amp;phase=2" target="_blank" title="Submit WCF Breaking Changes between BETA2 and June CTP to digg.com"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/mahara/archive/2006/07/08/wcf-breaking-changes-between-beta2-and-june-ctp.aspx&amp;amp;title=WCF+Breaking+Changes+between+BETA2+and+June+CTP" target="_blank" title="Add WCF Breaking Changes between BETA2 and June CTP to Live Bookmarks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=10201" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/mahara/archive/tags/.NET+Framework+3.0/default.aspx">.NET Framework 3.0</category><category domain="http://geeks.netindonesia.net/blogs/mahara/archive/tags/WCF/default.aspx">WCF</category></item><item><title>An Old Pad: Notepad</title><link>http://geeks.netindonesia.net/blogs/mahara/archive/2006/06/15/10023.aspx</link><pubDate>Thu, 15 Jun 2006 23:10:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:10023</guid><dc:creator>Maximilian Haru Raditya</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/mahara/rsscomments.aspx?PostID=10023</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/mahara/archive/2006/06/15/10023.aspx#comments</comments><description>&lt;P&gt;Well, guess: who doesn't know Notepad?&lt;/P&gt;
&lt;P&gt;Notepad is such a tiny, yet simple,&amp;nbsp;word processor application, which will lauch itself in less than a second.&lt;/P&gt;
&lt;P&gt;Its name is so simple that now, it has a friend: Notepad2. Just try googling it down...&lt;/P&gt;
&lt;P&gt;Moreover, it is so tiny that everyone is willing to use it in every simple plain-text-editing session.&lt;/P&gt;
&lt;P&gt;A presentation's code session? Of course, it would be very easy to show them up using the Notepad instead of the long-time-taking-to-launch Visual Studio (unless you're trying to debug a complex solution).&lt;/P&gt;
&lt;P&gt;But, if you think it has a well-known popularity because it has no bug, then you might be wrong.&lt;/P&gt;
&lt;P&gt;I'm now using Windows Vista BETA 2 (5384.4) and STILL be able to repro &lt;A href="http://www.wincustomize.com/articles.aspx?aid=117870&amp;amp;c=1"&gt;this &amp;#8220;tiny-also&amp;#8220; bug&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;I think MS should acquire Notepad2 (and Paint.NET maybe).&lt;/P&gt;
&lt;P&gt;:)&lt;/P&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/mahara/archive/2006/06/15/10023.aspx&amp;amp;subject=An Old Pad: Notepad" target="_blank" title="Send via email"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/mahara/archive/2006/06/15/10023.aspx&amp;amp;t=An+Old+Pad%3a+Notepad" target="_blank" title="Submit An Old Pad: Notepad to DotNetKicks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/mahara/archive/2006/06/15/10023.aspx&amp;amp;title=An+Old+Pad%3a+Notepad" target="_blank" title="Submit An Old Pad: Notepad to del.icio.us"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/mahara/archive/2006/06/15/10023.aspx&amp;amp;phase=2" target="_blank" title="Submit An Old Pad: Notepad to digg.com"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/mahara/archive/2006/06/15/10023.aspx&amp;amp;title=An+Old+Pad%3a+Notepad" target="_blank" title="Add An Old Pad: Notepad to Live Bookmarks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=10023" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/mahara/archive/tags/Windows/default.aspx">Windows</category><category domain="http://geeks.netindonesia.net/blogs/mahara/archive/tags/Did+You+Know_3F00_/default.aspx">Did You Know?</category><category domain="http://geeks.netindonesia.net/blogs/mahara/archive/tags/Bugs_2100_/default.aspx">Bugs!</category></item><item><title>No Query Notification for DLinq v1</title><link>http://geeks.netindonesia.net/blogs/mahara/archive/2006/04/12/no-query-notification-for-dlinq-v1.aspx</link><pubDate>Wed, 12 Apr 2006 23:12:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:9288</guid><dc:creator>Maximilian Haru Raditya</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/mahara/rsscomments.aspx?PostID=9288</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/mahara/archive/2006/04/12/no-query-notification-for-dlinq-v1.aspx#comments</comments><description>&lt;p&gt;So...,&lt;/p&gt;
&lt;p&gt;there will be likely NO Query Notification support in DLinq v1, as we used today in .NET Framework 2.0 (using SqlNotification, SqlDependency, etc.).&lt;/p&gt;
&lt;p&gt;He...3x. It seems so funny, huh?&lt;/p&gt;
&lt;p&gt;Even, for a product that has NOT been in full product life cycle yet, there has been a cut down of one of its POTENTIAL features.&lt;/p&gt;
&lt;p&gt;So, what do you think? For me, I would vote on requesting this feature in Ladybug as soon as Linq/DLinq product/technology category is availaible there.&lt;/p&gt;
&lt;p&gt;Anyway, see this: &lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=339956&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=339956&amp;amp;SiteID=1&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Cheers!&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/mahara/archive/2006/04/12/no-query-notification-for-dlinq-v1.aspx&amp;amp;subject=No Query Notification for DLinq v1" target="_blank" title="Send via email"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/mahara/archive/2006/04/12/no-query-notification-for-dlinq-v1.aspx&amp;amp;t=No+Query+Notification+for+DLinq+v1" target="_blank" title="Submit No Query Notification for DLinq v1 to DotNetKicks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/mahara/archive/2006/04/12/no-query-notification-for-dlinq-v1.aspx&amp;amp;title=No+Query+Notification+for+DLinq+v1" target="_blank" title="Submit No Query Notification for DLinq v1 to del.icio.us"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/mahara/archive/2006/04/12/no-query-notification-for-dlinq-v1.aspx&amp;amp;phase=2" target="_blank" title="Submit No Query Notification for DLinq v1 to digg.com"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/mahara/archive/2006/04/12/no-query-notification-for-dlinq-v1.aspx&amp;amp;title=No+Query+Notification+for+DLinq+v1" target="_blank" title="Add No Query Notification for DLinq v1 to Live Bookmarks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=9288" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/mahara/archive/tags/.NET+Framework+3.5/default.aspx">.NET Framework 3.5</category></item><item><title>WPF (Avalon) Bug: Black Window</title><link>http://geeks.netindonesia.net/blogs/mahara/archive/2006/01/30/wpf-avalon-bug-black-window.aspx</link><pubDate>Tue, 31 Jan 2006 04:11:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:8501</guid><dc:creator>Maximilian Haru Raditya</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/mahara/rsscomments.aspx?PostID=8501</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/mahara/archive/2006/01/30/wpf-avalon-bug-black-window.aspx#comments</comments><description>&lt;p&gt;Windows Presentation Foundation (WPF, aka Avalon) has a known bug recently that caused a black window appears instead of a normal Avalon window. The problem occurs because Avalon executing SSE2 instructions on non-SSE2 capable processors and trashing FPU stack!&lt;/p&gt;
&lt;p&gt;I discovered this bug when using WinFX December 2005 CTP running on Windows XP. I&amp;#39;m using an AMD Sempron 2500+ which doesn&amp;#39;t support SSE2 instructions yet. I thought there&amp;#39;s something&amp;nbsp;wrong with my WinFX installation, so I decided to reinstall WinFX but it still happened. When WinFX January 2006 CTP released, I immediately installed it and wondered whether the problem&amp;nbsp;occur. Well, it still!&lt;/p&gt;
&lt;p&gt;Later on, I did googling and found this useful post (&lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=157983&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=157983&amp;amp;SiteID=1&lt;/a&gt;). According to Microsoft statement posted in here (&lt;a href="http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=2e26e6c9-b7b1-4a5d-b661-d834330deb73"&gt;http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=2e26e6c9-b7b1-4a5d-b661-d834330deb73&lt;/a&gt;), it will be fixed in February 2006 CTP (the feature complete WinFX).&lt;/p&gt;
&lt;p&gt;So, I think I have to wait for a month... :(&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/mahara/archive/2006/01/30/wpf-avalon-bug-black-window.aspx&amp;amp;subject=WPF (Avalon) Bug: Black Window" target="_blank" title="Send via email"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/mahara/archive/2006/01/30/wpf-avalon-bug-black-window.aspx&amp;amp;t=WPF+(Avalon)+Bug%3a+Black+Window" target="_blank" title="Submit WPF (Avalon) Bug: Black Window to DotNetKicks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/mahara/archive/2006/01/30/wpf-avalon-bug-black-window.aspx&amp;amp;title=WPF+(Avalon)+Bug%3a+Black+Window" target="_blank" title="Submit WPF (Avalon) Bug: Black Window to del.icio.us"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/mahara/archive/2006/01/30/wpf-avalon-bug-black-window.aspx&amp;amp;phase=2" target="_blank" title="Submit WPF (Avalon) Bug: Black Window to digg.com"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/mahara/archive/2006/01/30/wpf-avalon-bug-black-window.aspx&amp;amp;title=WPF+(Avalon)+Bug%3a+Black+Window" target="_blank" title="Add WPF (Avalon) Bug: Black Window to Live Bookmarks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=8501" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/mahara/archive/tags/Bugs_2100_/default.aspx">Bugs!</category><category domain="http://geeks.netindonesia.net/blogs/mahara/archive/tags/.NET+Framework+3.0/default.aspx">.NET Framework 3.0</category><category domain="http://geeks.netindonesia.net/blogs/mahara/archive/tags/WPF/default.aspx">WPF</category></item><item><title>Did You Know: MSDN Forum</title><link>http://geeks.netindonesia.net/blogs/mahara/archive/2006/01/30/8498.aspx</link><pubDate>Tue, 31 Jan 2006 03:45:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:8498</guid><dc:creator>Maximilian Haru Raditya</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/mahara/rsscomments.aspx?PostID=8498</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/mahara/archive/2006/01/30/8498.aspx#comments</comments><description>&lt;P&gt;Beside reporting bugs through MSDN Product Feedback Center at &lt;A href="http://lab.msdn.microsoft.com/productfeedback/default.aspx"&gt;http://lab.msdn.microsoft.com/productfeedback/default.aspx&lt;/A&gt;, I think it's a good idea to have a discussion about Microsoft products through a forum.&lt;/P&gt;
&lt;P&gt;Well, don't worry, Microsoft has. Check this out at &lt;A href="http://forums.microsoft.com/MSDN/default.aspx?SiteID=1"&gt;http://forums.microsoft.com/MSDN/default.aspx?SiteID=1&lt;/A&gt;!&lt;/P&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/mahara/archive/2006/01/30/8498.aspx&amp;amp;subject=Did You Know: MSDN Forum" target="_blank" title="Send via email"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/mahara/archive/2006/01/30/8498.aspx&amp;amp;t=Did+You+Know%3a+MSDN+Forum" target="_blank" title="Submit Did You Know: MSDN Forum to DotNetKicks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/mahara/archive/2006/01/30/8498.aspx&amp;amp;title=Did+You+Know%3a+MSDN+Forum" target="_blank" title="Submit Did You Know: MSDN Forum to del.icio.us"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/mahara/archive/2006/01/30/8498.aspx&amp;amp;phase=2" target="_blank" title="Submit Did You Know: MSDN Forum to digg.com"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/mahara/archive/2006/01/30/8498.aspx&amp;amp;title=Did+You+Know%3a+MSDN+Forum" target="_blank" title="Add Did You Know: MSDN Forum to Live Bookmarks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=8498" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/mahara/archive/tags/Did+You+Know_3F00_/default.aspx">Did You Know?</category></item><item><title>Paul Thurrott's SuperSite for Windows</title><link>http://geeks.netindonesia.net/blogs/mahara/archive/2005/10/12/7617.aspx</link><pubDate>Wed, 12 Oct 2005 21:44:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:7617</guid><dc:creator>Maximilian Haru Raditya</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/mahara/rsscomments.aspx?PostID=7617</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/mahara/archive/2005/10/12/7617.aspx#comments</comments><description>&lt;P&gt;Hunger on some information about new unreleased-yet Microsoft products?&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Windows Vista?&lt;/LI&gt;
&lt;LI&gt;XBox360?&lt;/LI&gt;
&lt;LI&gt;Longhorn Server?&lt;/LI&gt;
&lt;LI&gt;Internet Explorer 7.0?&lt;/LI&gt;
&lt;LI&gt;Or whatever it is!&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Check out Paul Thurrotts's reviews on them at &lt;A href="http://www.winsupersite.com"&gt;http://www.winsupersite.com&lt;/A&gt;!&lt;/P&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/mahara/archive/2005/10/12/7617.aspx&amp;amp;subject=Paul Thurrott's SuperSite for Windows" target="_blank" title="Send via email"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/mahara/archive/2005/10/12/7617.aspx&amp;amp;t=Paul+Thurrott%27s+SuperSite+for+Windows" target="_blank" title="Submit Paul Thurrott's SuperSite for Windows to DotNetKicks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/mahara/archive/2005/10/12/7617.aspx&amp;amp;title=Paul+Thurrott%27s+SuperSite+for+Windows" target="_blank" title="Submit Paul Thurrott's SuperSite for Windows to del.icio.us"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/mahara/archive/2005/10/12/7617.aspx&amp;amp;phase=2" target="_blank" title="Submit Paul Thurrott's SuperSite for Windows to digg.com"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/mahara/archive/2005/10/12/7617.aspx&amp;amp;title=Paul+Thurrott%27s+SuperSite+for+Windows" target="_blank" title="Add Paul Thurrott's SuperSite for Windows to Live Bookmarks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=7617" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/mahara/archive/tags/Windows/default.aspx">Windows</category><category domain="http://geeks.netindonesia.net/blogs/mahara/archive/tags/Did+You+Know_3F00_/default.aspx">Did You Know?</category></item><item><title>:: Number2Text ::</title><link>http://geeks.netindonesia.net/blogs/mahara/archive/2005/06/21/number2text.aspx</link><pubDate>Tue, 21 Jun 2005 10:50:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:4217</guid><dc:creator>Maximilian Haru Raditya</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/mahara/rsscomments.aspx?PostID=4217</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/mahara/archive/2005/06/21/number2text.aspx#comments</comments><description>&lt;div&gt;Saya baru saja posting suatu artikel tentang aplikasi sederhana dalam C# untuk merubah angka menjadi teks.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Untuk lebih lanjut, silakan dilihat di sini: &lt;a href="https://geeks.netindonesia.net/blogs/mahara/pages/4216.aspx"&gt;https://geeks.netindonesia.net/blogs/mahara/pages/4216.aspx&lt;/a&gt;.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Have fun!&lt;/div&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/mahara/archive/2005/06/21/number2text.aspx&amp;amp;subject=:: Number2Text ::" target="_blank" title="Send via email"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/mahara/archive/2005/06/21/number2text.aspx&amp;amp;t=%3a%3a+Number2Text+%3a%3a" target="_blank" title="Submit :: Number2Text :: to DotNetKicks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/mahara/archive/2005/06/21/number2text.aspx&amp;amp;title=%3a%3a+Number2Text+%3a%3a" target="_blank" title="Submit :: Number2Text :: to del.icio.us"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/mahara/archive/2005/06/21/number2text.aspx&amp;amp;phase=2" target="_blank" title="Submit :: Number2Text :: to digg.com"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/mahara/archive/2005/06/21/number2text.aspx&amp;amp;title=%3a%3a+Number2Text+%3a%3a" target="_blank" title="Add :: Number2Text :: to Live Bookmarks"&gt;&lt;img src="https://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=4217" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/mahara/archive/tags/Code+Stuffs/default.aspx">Code Stuffs</category></item></channel></rss>