<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.microsoft.co.il/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">justguy&amp;#39;s</title><subtitle type="html">Thoughts, issues and practice: life, liberty, SharePoint and .NET.</subtitle><id>http://blogs.microsoft.co.il/blogs/justguy/atom.aspx</id><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/justguy/" /><link rel="self" type="application/atom+xml" href="http://blogs.microsoft.co.il/blogs/justguy/atom.aspx" /><generator uri="http://communityserver.org" version="3.1.20917.1142">Community Server</generator><updated>2008-05-05T08:09:00Z</updated><entry><title>Migrating an enterprise web site to a new CMS</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/justguy/archive/2009/06/14/migrating-an-enterprise-web-site-to-a-new-cms.aspx" /><id>http://blogs.microsoft.co.il/blogs/justguy/archive/2009/06/14/migrating-an-enterprise-web-site-to-a-new-cms.aspx</id><published>2009-06-14T05:54:00Z</published><updated>2009-06-14T05:54:00Z</updated><content type="html">&lt;p&gt;Currently as a web development manager for a&amp;nbsp;medium company, I&amp;#39;m in charge of migrating the current enterprise-size website to a new CMS.&lt;/p&gt;
&lt;p&gt;&lt;a title="CMS" href="http://en.wikipedia.org/wiki/CMS"&gt;CMS&lt;/a&gt; stands for Content Management System.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;There are so many things to consider when planning such a project. Some of which are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Usability&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Accessability&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;SEO&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Statistics&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Language support&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Design and branding&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;WWW standards &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Content migration&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Implementation and development of old and new components&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a title="UX" href="http://en.wikipedia.org/wiki/User_experience_design"&gt;UX&lt;/a&gt; (User eXperience)&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Cross-browser support&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Security&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;Am I forgetting anything?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In my following post I&amp;#39;ll try to find the time to discuss the issues I&amp;#39;ll encounter.&lt;/p&gt;
&lt;p&gt;Let&amp;#39;s hope for the best ;)&lt;/p&gt;
&lt;p&gt;Adi.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=337786" width="1" height="1"&gt;</content><author><name>justguy</name><uri>http://blogs.microsoft.co.il/members/justguy.aspx</uri></author><category term="CMS" scheme="http://blogs.microsoft.co.il/blogs/justguy/archive/tags/CMS/default.aspx" /></entry><entry><title>WPF: ComboBox with CheckBoxes as items (it will even update on the fly!)</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/justguy/archive/2009/01/19/wpf-combobox-with-checkboxes-as-items-it-will-even-update-on-the-fly.aspx" /><id>http://blogs.microsoft.co.il/blogs/justguy/archive/2009/01/19/wpf-combobox-with-checkboxes-as-items-it-will-even-update-on-the-fly.aspx</id><published>2009-01-19T10:08:46Z</published><updated>2009-01-19T10:08:46Z</updated><content type="html">&lt;p&gt;Hi,&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Recently I’ve come across something weird… I needed a &lt;strong&gt;&lt;em&gt;ComboBox&lt;/em&gt;&lt;/strong&gt; that will allow the user to select multiple items.     &lt;br /&gt;The the solution coming to mind is using &lt;strong&gt;&lt;em&gt;CheckBox&lt;/em&gt;&lt;/strong&gt;es. I have found several examples, but neither one displayed the selected items with pretty commas (like this: &lt;a href="http://blogs.microsoft.co.il/blogs/justguy/image_67299853.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/justguy/image_thumb_463625AC.png" width="244" height="22" /&gt;&lt;/a&gt; ).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I’ve decided the best solution willl be taking an example from MSDN and modifying it to suite my needs.&lt;/p&gt;  &lt;p&gt;Steps: (actually took &lt;strong&gt;ALOT&lt;/strong&gt; longer and was &lt;strong&gt;ALOT&lt;/strong&gt; harder – learning curves and such)&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Created a &lt;strong&gt;&lt;em&gt;UserControl&lt;/em&gt;&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;Added the &lt;strong&gt;&lt;em&gt;ComboBox&lt;/em&gt;&lt;/strong&gt; from the MSDN sample. &lt;/li&gt;    &lt;li&gt;Created 3 dependency properties:      &lt;ul&gt;       &lt;li&gt;Text – retrieves the text of the selected items &lt;/li&gt;        &lt;li&gt;ItemsSource – the items to display (currently bound to &lt;strong&gt;Title&lt;/strong&gt; and &lt;strong&gt;IsSelected&lt;/strong&gt;) &lt;/li&gt;        &lt;li&gt;DefaultText – the text to display if no items were checked &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Bound the &lt;strong&gt;ItemsSource&lt;/strong&gt; properties of the &lt;strong&gt;&lt;em&gt;UserControl&lt;/em&gt;&lt;/strong&gt; and the &lt;strong&gt;&lt;em&gt;ComboBox&lt;/em&gt;&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;Added a &lt;em&gt;Click&lt;/em&gt; event to the &lt;strong&gt;&lt;em&gt;CheckBox&lt;/em&gt;&lt;/strong&gt; that refreshes the text field in the &lt;strong&gt;&lt;em&gt;ContentPresenter&lt;/em&gt;&lt;/strong&gt;. &lt;/li&gt; &lt;/ol&gt;  &lt;h1&gt;Usage&lt;/h1&gt;  &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Window&lt;br /&gt;         …&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;         &lt;/span&gt;&lt;span style="color:red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;controls&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;clr-namespace:Controls;assembly=Controls&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;controls&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ComboWithCheckboxes
    &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;cbLanguages&amp;quot;
    &lt;/span&gt;&lt;span style="color:red;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;22&amp;quot;
    &lt;/span&gt;&lt;span style="color:red;"&gt;DefaultText&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Choose Subtitles...&amp;quot;
    &lt;/span&gt;&lt;span style="color:red;"&gt;ItemsSource&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Binding&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot;
    /&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h1&gt;Result&lt;/h1&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/justguy/image_2827F1EB.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/justguy/image_thumb_44E16700.png" width="244" height="88" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/justguy/image_3C7D91A9.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/justguy/image_thumb_09415840.png" width="244" height="87" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/justguy/image_2817CC1E.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/justguy/image_thumb_07245977.png" width="244" height="22" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h1&gt;Code&lt;/h1&gt;

&lt;h2&gt;&amp;#160;&lt;/h2&gt;

&lt;h2&gt;ComboWithCheckboxes.xaml&lt;/h2&gt;

&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Controls.ComboWithCheckboxes&amp;quot;
    &lt;/span&gt;&lt;span style="color:red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;
    &lt;/span&gt;&lt;span style="color:red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;
    &lt;/span&gt;&lt;span style="color:red;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;22&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;120&amp;quot;
    &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;UserControl&amp;quot;
    &amp;gt;
    
    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl.Resources&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;LinearGradientBrush &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Key&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;NormalBrush&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;StartPoint&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;0,0&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;EndPoint&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;0,1&amp;quot;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientBrush.GradientStops&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientStopCollection&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientStop &lt;/span&gt;&lt;span style="color:red;"&gt;Color&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;#FFF&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Offset&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;0.0&amp;quot;/&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientStop &lt;/span&gt;&lt;span style="color:red;"&gt;Color&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;#CCC&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Offset&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;1.0&amp;quot;/&amp;gt;
                &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientStopCollection&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientBrush.GradientStops&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;LinearGradientBrush&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;

        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;LinearGradientBrush &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Key&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;NormalBorderBrush&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;StartPoint&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;0,0&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;EndPoint&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;0,1&amp;quot;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientBrush.GradientStops&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientStopCollection&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientStop &lt;/span&gt;&lt;span style="color:red;"&gt;Color&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;#CCC&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Offset&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;0.0&amp;quot;/&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientStop &lt;/span&gt;&lt;span style="color:red;"&gt;Color&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;#444&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Offset&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;1.0&amp;quot;/&amp;gt;
                &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientStopCollection&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientBrush.GradientStops&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;LinearGradientBrush&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;

        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SolidColorBrush &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Key&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;GlyphBrush&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Color&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;#444&amp;quot; /&amp;gt;

        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;LinearGradientBrush &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Key&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;DarkBrush&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;StartPoint&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;0,0&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;EndPoint&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;0,1&amp;quot;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientBrush.GradientStops&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientStopCollection&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientStop &lt;/span&gt;&lt;span style="color:red;"&gt;Color&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;#FFF&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Offset&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;0.0&amp;quot;/&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientStop &lt;/span&gt;&lt;span style="color:red;"&gt;Color&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;#AAA&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Offset&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;1.0&amp;quot;/&amp;gt;
                &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientStopCollection&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientBrush.GradientStops&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;LinearGradientBrush&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;

        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;LinearGradientBrush &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Key&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PressedBrush&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;StartPoint&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;0,0&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;EndPoint&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;0,1&amp;quot;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientBrush.GradientStops&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientStopCollection&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientStop &lt;/span&gt;&lt;span style="color:red;"&gt;Color&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;#BBB&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Offset&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;0.0&amp;quot;/&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientStop &lt;/span&gt;&lt;span style="color:red;"&gt;Color&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;#EEE&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Offset&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;0.1&amp;quot;/&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientStop &lt;/span&gt;&lt;span style="color:red;"&gt;Color&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;#EEE&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Offset&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;0.9&amp;quot;/&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientStop &lt;/span&gt;&lt;span style="color:red;"&gt;Color&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;#FFF&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Offset&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;1.0&amp;quot;/&amp;gt;
                &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientStopCollection&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientBrush.GradientStops&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;LinearGradientBrush&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;

        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SolidColorBrush &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Key&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;DisabledForegroundBrush&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Color&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;#888&amp;quot; /&amp;gt;

        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SolidColorBrush &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Key&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;DisabledBackgroundBrush&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Color&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;#EEE&amp;quot; /&amp;gt;

        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SolidColorBrush &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Key&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;WindowBackgroundBrush&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Color&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;#FFF&amp;quot; /&amp;gt;

        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SolidColorBrush &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Key&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;SelectedBackgroundBrush&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Color&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;#DDD&amp;quot; /&amp;gt;

        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ControlTemplate &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Key&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;ComboBoxToggleButton&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;TargetType&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;ToggleButton&amp;quot;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition &lt;/span&gt;&lt;span style="color:blue;"&gt;/&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition &lt;/span&gt;&lt;span style="color:red;"&gt;Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;20&amp;quot; /&amp;gt;
                &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Border
                  &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Border&amp;quot; 
                  &lt;/span&gt;&lt;span style="color:red;"&gt;Grid.ColumnSpan&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;2&amp;quot;
                  &lt;/span&gt;&lt;span style="color:red;"&gt;CornerRadius&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;2&amp;quot;
                  &lt;/span&gt;&lt;span style="color:red;"&gt;Background&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource &lt;/span&gt;&lt;span style="color:red;"&gt;NormalBrush&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot;
                  &lt;/span&gt;&lt;span style="color:red;"&gt;BorderBrush&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource &lt;/span&gt;&lt;span style="color:red;"&gt;NormalBorderBrush&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot;
                  &lt;/span&gt;&lt;span style="color:red;"&gt;BorderThickness&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;1&amp;quot; /&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Border 
                  &lt;/span&gt;&lt;span style="color:red;"&gt;Grid.Column&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;0&amp;quot;
                  &lt;/span&gt;&lt;span style="color:red;"&gt;CornerRadius&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;2,0,0,2&amp;quot; 
                  &lt;/span&gt;&lt;span style="color:red;"&gt;Margin&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;1&amp;quot; 
                  &lt;/span&gt;&lt;span style="color:red;"&gt;Background&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource &lt;/span&gt;&lt;span style="color:red;"&gt;WindowBackgroundBrush&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot; 
                  &lt;/span&gt;&lt;span style="color:red;"&gt;BorderBrush&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource &lt;/span&gt;&lt;span style="color:red;"&gt;NormalBorderBrush&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot;
                  &lt;/span&gt;&lt;span style="color:red;"&gt;BorderThickness&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;0,0,1,0&amp;quot; /&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Path 
                  &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Arrow&amp;quot;
                  &lt;/span&gt;&lt;span style="color:red;"&gt;Grid.Column&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;1&amp;quot;     
                  &lt;/span&gt;&lt;span style="color:red;"&gt;Fill&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource &lt;/span&gt;&lt;span style="color:red;"&gt;GlyphBrush&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot;
                  &lt;/span&gt;&lt;span style="color:red;"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Center&amp;quot;
                  &lt;/span&gt;&lt;span style="color:red;"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Center&amp;quot;
                  &lt;/span&gt;&lt;span style="color:red;"&gt;Data&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;M 0 0 L 4 4 L 8 0 Z&amp;quot;/&amp;gt;
            &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ControlTemplate.Triggers&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Trigger &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;ToggleButton.IsMouseOver&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;true&amp;quot;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter &lt;/span&gt;&lt;span style="color:red;"&gt;TargetName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Border&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Background&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource &lt;/span&gt;&lt;span style="color:red;"&gt;DarkBrush&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot; /&amp;gt;
                &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Trigger&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Trigger &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;ToggleButton.IsChecked&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;true&amp;quot;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter &lt;/span&gt;&lt;span style="color:red;"&gt;TargetName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Border&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Background&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource &lt;/span&gt;&lt;span style="color:red;"&gt;PressedBrush&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot; /&amp;gt;
                &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Trigger&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Trigger &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;IsEnabled&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;False&amp;quot;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter &lt;/span&gt;&lt;span style="color:red;"&gt;TargetName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Border&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Background&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource &lt;/span&gt;&lt;span style="color:red;"&gt;DisabledBackgroundBrush&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot; /&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter &lt;/span&gt;&lt;span style="color:red;"&gt;TargetName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Border&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;BorderBrush&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource &lt;/span&gt;&lt;span style="color:red;"&gt;DisabledBorderBrush&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot; /&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Foreground&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource &lt;/span&gt;&lt;span style="color:red;"&gt;DisabledForegroundBrush&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot;/&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter &lt;/span&gt;&lt;span style="color:red;"&gt;TargetName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Arrow&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Fill&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource &lt;/span&gt;&lt;span style="color:red;"&gt;DisabledForegroundBrush&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot; /&amp;gt;
                &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Trigger&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ControlTemplate.Triggers&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ControlTemplate&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ControlTemplate &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Key&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;ComboBoxTextBox&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;TargetType&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;TextBox&amp;quot;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Border &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PART_ContentHost&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Focusable&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;False&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Background&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TemplateBinding &lt;/span&gt;&lt;span style="color:red;"&gt;Background&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot; /&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ControlTemplate&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;

        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Style &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Key&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Type &lt;/span&gt;&lt;span style="color:red;"&gt;ComboBoxItem&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;TargetType&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;ComboBoxItem&amp;quot;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;SnapsToDevicePixels&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;true&amp;quot;/&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;OverridesDefaultStyle&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;true&amp;quot;/&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Template&amp;quot;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter.Value&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ControlTemplate &lt;/span&gt;&lt;span style="color:red;"&gt;TargetType&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;ComboBoxItem&amp;quot;&amp;gt;
                        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Border 
                          &lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Border&amp;quot;
                          &lt;/span&gt;&lt;span style="color:red;"&gt;Padding&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;2&amp;quot;
                          &lt;/span&gt;&lt;span style="color:red;"&gt;SnapsToDevicePixels&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;true&amp;quot;&amp;gt;
                            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPresenter &lt;/span&gt;&lt;span style="color:blue;"&gt;/&amp;gt;
                        &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Border&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ControlTemplate.Triggers&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Trigger &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;IsHighlighted&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;true&amp;quot;&amp;gt;
                                &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter &lt;/span&gt;&lt;span style="color:red;"&gt;TargetName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Border&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Background&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource &lt;/span&gt;&lt;span style="color:red;"&gt;SelectedBackgroundBrush&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot;/&amp;gt;
                            &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Trigger&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Trigger &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;IsEnabled&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;false&amp;quot;&amp;gt;
                                &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Foreground&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource &lt;/span&gt;&lt;span style="color:red;"&gt;DisabledForegroundBrush&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot;/&amp;gt;
                            &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Trigger&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                        &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ControlTemplate.Triggers&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ControlTemplate&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter.Value&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Style&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl.Resources&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;

    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ComboBox
        &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;CheckableCombo&amp;quot;
        &lt;/span&gt;&lt;span style="color:red;"&gt;SnapsToDevicePixels&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;True&amp;quot;
        &lt;/span&gt;&lt;span style="color:red;"&gt;OverridesDefaultStyle&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;True&amp;quot;
        &lt;/span&gt;&lt;span style="color:red;"&gt;ScrollViewer.HorizontalScrollBarVisibility&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Auto&amp;quot;
        &lt;/span&gt;&lt;span style="color:red;"&gt;ScrollViewer.VerticalScrollBarVisibility&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Auto&amp;quot;
        &lt;/span&gt;&lt;span style="color:red;"&gt;ScrollViewer.CanContentScroll&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;True&amp;quot;
        &lt;/span&gt;&lt;span style="color:red;"&gt;IsSynchronizedWithCurrentItem&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;True&amp;quot;
        &lt;/span&gt;&lt;span style="color:red;"&gt;MinWidth&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;120&amp;quot;
        &lt;/span&gt;&lt;span style="color:red;"&gt;MinHeight&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;20&amp;quot;
        &lt;/span&gt;&lt;span style="color:red;"&gt;ItemsSource&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Binding &lt;/span&gt;&lt;span style="color:red;"&gt;ElementName&lt;/span&gt;&lt;span style="color:blue;"&gt;=UserControl, &lt;/span&gt;&lt;span style="color:red;"&gt;Path&lt;/span&gt;&lt;span style="color:blue;"&gt;=ItemsSource}&amp;quot;
        &lt;/span&gt;&lt;span style="color:red;"&gt;DataContext&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Binding &lt;/span&gt;&lt;span style="color:red;"&gt;ElementName&lt;/span&gt;&lt;span style="color:blue;"&gt;=UserControl, &lt;/span&gt;&lt;span style="color:red;"&gt;Path&lt;/span&gt;&lt;span style="color:blue;"&gt;=DataContext}&amp;quot;
        &amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ComboBox.ItemTemplate&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;HierarchicalDataTemplate&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;CheckBox &lt;/span&gt;&lt;span style="color:red;"&gt;Content&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Binding &lt;/span&gt;&lt;span style="color:red;"&gt;Title&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot;
                          &lt;/span&gt;&lt;span style="color:red;"&gt;IsChecked&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Binding &lt;/span&gt;&lt;span style="color:red;"&gt;Path&lt;/span&gt;&lt;span style="color:blue;"&gt;=IsSelected, &lt;/span&gt;&lt;span style="color:red;"&gt;Mode&lt;/span&gt;&lt;span style="color:blue;"&gt;=TwoWay}&amp;quot;
                          &lt;/span&gt;&lt;span style="color:red;"&gt;Tag&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RelativeSource &lt;/span&gt;&lt;span style="color:red;"&gt;FindAncestor&lt;/span&gt;&lt;span style="color:blue;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;AncestorType&lt;/span&gt;&lt;span style="color:blue;"&gt;={&lt;/span&gt;&lt;span style="color:#a31515;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Type &lt;/span&gt;&lt;span style="color:red;"&gt;ComboBox&lt;/span&gt;&lt;span style="color:blue;"&gt;}}&amp;quot;
                          &lt;/span&gt;&lt;span style="color:red;"&gt;Click&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;CheckBox_Click&amp;quot;
                          /&amp;gt;
            &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;HierarchicalDataTemplate&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ComboBox.ItemTemplate&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;

        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ComboBox.Template&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ControlTemplate &lt;/span&gt;&lt;span style="color:red;"&gt;TargetType&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;ComboBox&amp;quot;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ToggleButton 
                        &lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;ToggleButton&amp;quot; 
                        &lt;/span&gt;&lt;span style="color:red;"&gt;Template&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource &lt;/span&gt;&lt;span style="color:red;"&gt;ComboBoxToggleButton&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot; 
                        &lt;/span&gt;&lt;span style="color:red;"&gt;Grid.Column&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;2&amp;quot; 
                        &lt;/span&gt;&lt;span style="color:red;"&gt;Focusable&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;false&amp;quot;
                        &lt;/span&gt;&lt;span style="color:red;"&gt;IsChecked&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Binding &lt;/span&gt;&lt;span style="color:red;"&gt;Path&lt;/span&gt;&lt;span style="color:blue;"&gt;=IsDropDownOpen,&lt;/span&gt;&lt;span style="color:red;"&gt;Mode&lt;/span&gt;&lt;span style="color:blue;"&gt;=TwoWay,&lt;/span&gt;&lt;span style="color:red;"&gt;RelativeSource&lt;/span&gt;&lt;span style="color:blue;"&gt;={&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RelativeSource &lt;/span&gt;&lt;span style="color:red;"&gt;TemplatedParent&lt;/span&gt;&lt;span style="color:blue;"&gt;}}&amp;quot;
                        &lt;/span&gt;&lt;span style="color:red;"&gt;ClickMode&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Press&amp;quot;&amp;gt;
                    &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ToggleButton&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPresenter
                        &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Presenter&amp;quot;
                        &lt;/span&gt;&lt;span style="color:red;"&gt;IsHitTestVisible&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;False&amp;quot; 
                        &lt;/span&gt;&lt;span style="color:red;"&gt;Margin&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;3,3,23,3&amp;quot;
                        &lt;/span&gt;&lt;span style="color:red;"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Center&amp;quot;
                        &lt;/span&gt;&lt;span style="color:red;"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Left&amp;quot;&amp;gt;
                        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPresenter.Content&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock &lt;/span&gt;&lt;span style="color:red;"&gt;TextTrimming&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;CharacterEllipsis&amp;quot;
                                       &lt;/span&gt;&lt;span style="color:red;"&gt;Text&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Binding &lt;/span&gt;&lt;span style="color:red;"&gt;Path&lt;/span&gt;&lt;span style="color:blue;"&gt;=Text,&lt;/span&gt;&lt;span style="color:red;"&gt;Mode&lt;/span&gt;&lt;span style="color:blue;"&gt;=TwoWay,&lt;/span&gt;&lt;span style="color:red;"&gt;RelativeSource&lt;/span&gt;&lt;span style="color:blue;"&gt;={&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RelativeSource &lt;/span&gt;&lt;span style="color:red;"&gt;Mode&lt;/span&gt;&lt;span style="color:blue;"&gt;=FindAncestor, &lt;/span&gt;&lt;span style="color:red;"&gt;AncestorType&lt;/span&gt;&lt;span style="color:blue;"&gt;=UserControl}}&amp;quot; /&amp;gt;
                        &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPresenter.Content&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPresenter&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &lt;/span&gt;&lt;span style="color:green;"&gt;&amp;lt;!-- Content=&amp;quot;{TemplateBinding SelectionBoxItem}&amp;quot; --&amp;gt;
                    &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBox &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;EditableTextBox&amp;quot;
                        &lt;/span&gt;&lt;span style="color:red;"&gt;Style&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Null&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot; 
                        &lt;/span&gt;&lt;span style="color:red;"&gt;Template&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource &lt;/span&gt;&lt;span style="color:red;"&gt;ComboBoxTextBox&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot; 
                        &lt;/span&gt;&lt;span style="color:red;"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Left&amp;quot; 
                        &lt;/span&gt;&lt;span style="color:red;"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Center&amp;quot; 
                        &lt;/span&gt;&lt;span style="color:red;"&gt;Margin&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;3,3,23,3&amp;quot;
                        &lt;/span&gt;&lt;span style="color:red;"&gt;Focusable&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;True&amp;quot; 
                        &lt;/span&gt;&lt;span style="color:red;"&gt;Background&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Transparent&amp;quot;
                        &lt;/span&gt;&lt;span style="color:red;"&gt;Visibility&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Hidden&amp;quot;
                        &lt;/span&gt;&lt;span style="color:red;"&gt;IsReadOnly&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TemplateBinding &lt;/span&gt;&lt;span style="color:red;"&gt;IsReadOnly&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot;/&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Popup 
                        &lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Popup&amp;quot;
                        &lt;/span&gt;&lt;span style="color:red;"&gt;Placement&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Bottom&amp;quot;
                        &lt;/span&gt;&lt;span style="color:red;"&gt;IsOpen&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TemplateBinding &lt;/span&gt;&lt;span style="color:red;"&gt;IsDropDownOpen&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot;
                        &lt;/span&gt;&lt;span style="color:red;"&gt;AllowsTransparency&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;True&amp;quot; 
                        &lt;/span&gt;&lt;span style="color:red;"&gt;Focusable&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;False&amp;quot;
                        &lt;/span&gt;&lt;span style="color:red;"&gt;PopupAnimation&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Slide&amp;quot;&amp;gt;
                        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid 
                                  &lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;DropDown&amp;quot;
                                  &lt;/span&gt;&lt;span style="color:red;"&gt;SnapsToDevicePixels&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;True&amp;quot;                
                                  &lt;/span&gt;&lt;span style="color:red;"&gt;MinWidth&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TemplateBinding &lt;/span&gt;&lt;span style="color:red;"&gt;ActualWidth&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot;
                                  &lt;/span&gt;&lt;span style="color:red;"&gt;MaxHeight&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TemplateBinding &lt;/span&gt;&lt;span style="color:red;"&gt;MaxDropDownHeight&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot;&amp;gt;
                            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Border 
                                    &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;DropDownBorder&amp;quot;
                                    &lt;/span&gt;&lt;span style="color:red;"&gt;Background&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource &lt;/span&gt;&lt;span style="color:red;"&gt;WindowBackgroundBrush&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot;
                                    &lt;/span&gt;&lt;span style="color:red;"&gt;BorderThickness&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;1&amp;quot;
                                    &lt;/span&gt;&lt;span style="color:red;"&gt;BorderBrush&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource &lt;/span&gt;&lt;span style="color:red;"&gt;SolidBorderBrush&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot;/&amp;gt;
                            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ScrollViewer &lt;/span&gt;&lt;span style="color:red;"&gt;Margin&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;4,6,4,6&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;SnapsToDevicePixels&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;True&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;DataContext&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Binding&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot;&amp;gt;
                                &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel &lt;/span&gt;&lt;span style="color:red;"&gt;IsItemsHost&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;True&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;KeyboardNavigation.DirectionalNavigation&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Contained&amp;quot; /&amp;gt;
                            &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ScrollViewer&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                        &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Popup&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ControlTemplate.Triggers&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Trigger &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;HasItems&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;false&amp;quot;&amp;gt;
                        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter &lt;/span&gt;&lt;span style="color:red;"&gt;TargetName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;DropDownBorder&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;MinHeight&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;95&amp;quot;/&amp;gt;
                    &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Trigger&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Trigger &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;IsEnabled&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;false&amp;quot;&amp;gt;
                        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Foreground&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource &lt;/span&gt;&lt;span style="color:red;"&gt;DisabledForegroundBrush&lt;/span&gt;&lt;span style="color:blue;"&gt;}&amp;quot;/&amp;gt;
                    &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Trigger&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Trigger &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;IsGrouping&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;true&amp;quot;&amp;gt;
                        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;ScrollViewer.CanContentScroll&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;false&amp;quot;/&amp;gt;
                    &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Trigger&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Trigger &lt;/span&gt;&lt;span style="color:red;"&gt;SourceName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Popup&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Popup.AllowsTransparency&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;true&amp;quot;&amp;gt;
                        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter &lt;/span&gt;&lt;span style="color:red;"&gt;TargetName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;DropDownBorder&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;CornerRadius&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;4&amp;quot;/&amp;gt;
                        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter &lt;/span&gt;&lt;span style="color:red;"&gt;TargetName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;DropDownBorder&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Margin&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;0,2,0,0&amp;quot;/&amp;gt;
                    &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Trigger&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Trigger &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;IsEditable&amp;quot;
                   &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;true&amp;quot;&amp;gt;
                        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;IsTabStop&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;false&amp;quot;/&amp;gt;
                        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter &lt;/span&gt;&lt;span style="color:red;"&gt;TargetName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;EditableTextBox&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Visibility&amp;quot;    &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Visible&amp;quot;/&amp;gt;
                        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter &lt;/span&gt;&lt;span style="color:red;"&gt;TargetName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Presenter&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Property&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Visibility&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Hidden&amp;quot;/&amp;gt;
                    &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Trigger&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
                &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ControlTemplate.Triggers&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ControlTemplate&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ComboBox.Template&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ComboBox&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;h2&gt;&amp;#160;&lt;/h2&gt;

&lt;h2&gt;ComboWithCheckboxes.xaml.cs&lt;/h2&gt;

&lt;p&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt;System.Windows; 

  &lt;br /&gt;&lt;font color="#0000ff"&gt;&lt;/font&gt;

  &lt;br /&gt;&lt;span style="color:blue;"&gt;namespace &lt;/span&gt;Controls 

  &lt;br /&gt;{ 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:gray;"&gt;/// &amp;lt;summary&amp;gt; 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ///&lt;/span&gt;&lt;span style="color:green;"&gt;Interaction logic for ComboWithCheckboxes.xaml 
    &lt;br /&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:gray;"&gt;/// &amp;lt;/summary&amp;gt; 
    &lt;br /&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public partial class&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;ComboWithCheckboxes 
    &lt;br /&gt;&amp;#160;&amp;#160; &lt;/span&gt;{ 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;#region&lt;/span&gt;Dependency Properties 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:gray;"&gt;/// &amp;lt;summary&amp;gt; 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ///&lt;/span&gt;&lt;span style="color:green;"&gt;Gets or sets a collection used to generate the content of the ComboBox 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:gray;"&gt;/// &amp;lt;/summary&amp;gt; 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public object&lt;/span&gt;ItemsSource 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;get&lt;/span&gt;{ &lt;span style="color:blue;"&gt;return&lt;/span&gt;(&lt;span style="color:blue;"&gt;object&lt;/span&gt;)GetValue(ItemsSourceProperty); } 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;set 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{ 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SetValue(ItemsSourceProperty, &lt;span style="color:blue;"&gt;value&lt;/span&gt;); 

  &lt;br /&gt;

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SetText(); 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } 

  &lt;br /&gt;

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public static readonly&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;DependencyProperty&lt;/span&gt;ItemsSourceProperty = 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;DependencyProperty&lt;/span&gt;.Register(&lt;span style="color:#a31515;"&gt;&amp;quot;ItemsSource&amp;quot;&lt;/span&gt;, &lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:blue;"&gt;object&lt;/span&gt;), &lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;ComboWithCheckboxes&lt;/span&gt;), &lt;span style="color:blue;"&gt;new&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;UIPropertyMetadata&lt;/span&gt;(&lt;span style="color:blue;"&gt;null&lt;/span&gt;)); 

  &lt;br /&gt;

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:gray;"&gt;/// &amp;lt;summary&amp;gt; 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ///&lt;/span&gt;&lt;span style="color:green;"&gt;Gets or sets the text displayed in the ComboBox 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:gray;"&gt;/// &amp;lt;/summary&amp;gt; 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public string&lt;/span&gt;Text 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;get&lt;/span&gt;{ &lt;span style="color:blue;"&gt;return&lt;/span&gt;(&lt;span style="color:blue;"&gt;string&lt;/span&gt;)GetValue(TextProperty); } 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;set&lt;/span&gt;{ SetValue(TextProperty, &lt;span style="color:blue;"&gt;value&lt;/span&gt;); } 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } 

  &lt;br /&gt;

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public static readonly&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;DependencyProperty&lt;/span&gt;TextProperty = 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;DependencyProperty&lt;/span&gt;.Register(&lt;span style="color:#a31515;"&gt;&amp;quot;Text&amp;quot;&lt;/span&gt;, &lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:blue;"&gt;string&lt;/span&gt;), &lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;ComboWithCheckboxes&lt;/span&gt;), &lt;span style="color:blue;"&gt;new&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;UIPropertyMetadata&lt;/span&gt;(&lt;span style="color:blue;"&gt;string&lt;/span&gt;.Empty)); 

  &lt;br /&gt;

  &lt;br /&gt;

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:gray;"&gt;/// &amp;lt;summary&amp;gt; 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ///&lt;/span&gt;&lt;span style="color:green;"&gt;Gets or sets the text displayed in the ComboBox if there are no selected items 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:gray;"&gt;/// &amp;lt;/summary&amp;gt; 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public string&lt;/span&gt;DefaultText 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;get&lt;/span&gt;{ &lt;span style="color:blue;"&gt;return&lt;/span&gt;(&lt;span style="color:blue;"&gt;string&lt;/span&gt;)GetValue(DefaultTextProperty); } 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;set&lt;/span&gt;{ SetValue(DefaultTextProperty, &lt;span style="color:blue;"&gt;value&lt;/span&gt;); } 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } 

  &lt;br /&gt;

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:green;"&gt;// Using a DependencyProperty as the backing store for DefaultText.&amp;#160; This enables animation, styling, binding, etc... 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;public static readonly&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;DependencyProperty&lt;/span&gt;DefaultTextProperty = 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;DependencyProperty&lt;/span&gt;.Register(&lt;span style="color:#a31515;"&gt;&amp;quot;DefaultText&amp;quot;&lt;/span&gt;, &lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:blue;"&gt;string&lt;/span&gt;), &lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;ComboWithCheckboxes&lt;/span&gt;), &lt;span style="color:blue;"&gt;new&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;UIPropertyMetadata&lt;/span&gt;(&lt;span style="color:blue;"&gt;string&lt;/span&gt;.Empty)); 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;#endregion 
    &lt;br /&gt;

    &lt;br /&gt;

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public&lt;/span&gt;ComboWithCheckboxes() 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; InitializeComponent(); 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } 

  &lt;br /&gt;

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:gray;"&gt;/// &amp;lt;summary&amp;gt; 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ///&lt;/span&gt;&lt;span style="color:green;"&gt;Whenever a CheckBox is checked, change the text displayed 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:gray;"&gt;/// &amp;lt;/summary&amp;gt; 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /// &amp;lt;param name=&amp;quot;sender&amp;quot;&amp;gt;&amp;lt;/param&amp;gt; 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /// &amp;lt;param name=&amp;quot;e&amp;quot;&amp;gt;&amp;lt;/param&amp;gt; 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;private void&lt;/span&gt;CheckBox_Click(&lt;span style="color:blue;"&gt;object&lt;/span&gt;sender, &lt;span style="color:#2b91af;"&gt;RoutedEventArgs&lt;/span&gt;e) 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SetText(); 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } 

  &lt;br /&gt;

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:gray;"&gt;/// &amp;lt;summary&amp;gt; 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ///&lt;/span&gt;&lt;span style="color:green;"&gt;Set the text property of this control (bound to the ContentPresenter of the ComboBox) 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:gray;"&gt;/// &amp;lt;/summary&amp;gt; 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;private void&lt;/span&gt;SetText() 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.Text = (&lt;span style="color:blue;"&gt;this&lt;/span&gt;.ItemsSource != &lt;span style="color:blue;"&gt;null&lt;/span&gt;) ? 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.ItemsSource.ToString() : &lt;span style="color:blue;"&gt;this&lt;/span&gt;.DefaultText; 

  &lt;br /&gt;

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:green;"&gt;// set DefaultText if nothing else selected 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt;(&lt;span style="color:blue;"&gt;string&lt;/span&gt;.IsNullOrEmpty(&lt;span style="color:blue;"&gt;this&lt;/span&gt;.Text)) 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.Text = &lt;span style="color:blue;"&gt;this&lt;/span&gt;.DefaultText; 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } 

  &lt;br /&gt;} 

  &lt;br /&gt;&lt;/p&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;That’s it!&lt;/p&gt;

&lt;p&gt;Adi.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=213973" width="1" height="1"&gt;</content><author><name>justguy</name><uri>http://blogs.microsoft.co.il/members/justguy.aspx</uri></author><category term="DEV" scheme="http://blogs.microsoft.co.il/blogs/justguy/archive/tags/DEV/default.aspx" /><category term="WPF" scheme="http://blogs.microsoft.co.il/blogs/justguy/archive/tags/WPF/default.aspx" /></entry><entry><title>Base Content Type Hierarchy</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/justguy/archive/2008/11/16/base-content-type-hierarchy.aspx" /><id>http://blogs.microsoft.co.il/blogs/justguy/archive/2008/11/16/base-content-type-hierarchy.aspx</id><published>2008-11-16T00:43:00Z</published><updated>2008-11-16T00:43:00Z</updated><content type="html">&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;As you may know, Content Types are hierarchical and uniquely identified with an ID. &lt;br /&gt;Read about it here: &lt;a title="MSDN" target="_blank" href="http://msdn.microsoft.com/en-us/library/ms452896.aspx"&gt;Base Content Type Hierarchy&lt;/a&gt;, &lt;a title="MSDN" target="_blank" href="http://msdn.microsoft.com/en-us/library/aa543822.aspx"&gt;Content Type IDs&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;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you actually read the articles above, you know that inherited content types always start with the ID of the part and add a suffix.&lt;/p&gt;
&lt;p&gt;I wrote this small class to help identify the type of a Content Type. Use it with &lt;a title="MSDN" target="_blank" href="http://msdn.microsoft.com/en-us/library/system.string.startswith.aspx"&gt;String.StartsWith()&lt;/a&gt; :)&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="COLOR:blue;"&gt;public static class &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;ContentTypePrefix
&lt;/span&gt;{
    &lt;span style="COLOR:blue;"&gt;public static readonly string &lt;/span&gt;Item            = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0x01&amp;quot;&lt;/span&gt;;

    &lt;span style="COLOR:green;"&gt;// document
    &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public static readonly string &lt;/span&gt;Document        = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0x0101&amp;quot;&lt;/span&gt;;
    &lt;span style="COLOR:blue;"&gt;public static readonly string &lt;/span&gt;XMLDocument     = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0x010101&amp;quot;&lt;/span&gt;;
    &lt;span style="COLOR:blue;"&gt;public static readonly string &lt;/span&gt;Picture         = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0x010102&amp;quot;&lt;/span&gt;;
    &lt;span style="COLOR:blue;"&gt;public static readonly string &lt;/span&gt;UntypesDocument = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0x010104&amp;quot;&lt;/span&gt;;
    &lt;span style="COLOR:blue;"&gt;public static readonly string &lt;/span&gt;MasterPage      = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0x010105&amp;quot;&lt;/span&gt;;
    &lt;span style="COLOR:blue;"&gt;public static readonly string &lt;/span&gt;WikiDocument    = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0x010108&amp;quot;&lt;/span&gt;;
    &lt;span style="COLOR:blue;"&gt;public static readonly string &lt;/span&gt;BasicPage       = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0x010109&amp;quot;&lt;/span&gt;;
    &lt;span style="COLOR:blue;"&gt;public static readonly string &lt;/span&gt;WebPartPage     = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0x01010901&amp;quot;&lt;/span&gt;;
    &lt;span style="COLOR:blue;"&gt;public static readonly string &lt;/span&gt;LinkToDocument  = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0x01010A&amp;quot;&lt;/span&gt;;
    &lt;span style="COLOR:blue;"&gt;public static readonly string &lt;/span&gt;DublinCoreName  = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0x01010B&amp;quot;&lt;/span&gt;;

    &lt;span style="COLOR:blue;"&gt;public static readonly string &lt;/span&gt;Event           = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0x0102&amp;quot;&lt;/span&gt;;
    &lt;span style="COLOR:blue;"&gt;public static readonly string &lt;/span&gt;Issue           = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0x0103&amp;quot;&lt;/span&gt;;
    &lt;span style="COLOR:blue;"&gt;public static readonly string &lt;/span&gt;Announcement    = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0x0104&amp;quot;&lt;/span&gt;;
    &lt;span style="COLOR:blue;"&gt;public static readonly string &lt;/span&gt;Link            = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0x0105&amp;quot;&lt;/span&gt;;
    &lt;span style="COLOR:blue;"&gt;public static readonly string &lt;/span&gt;Contact         = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0x0106&amp;quot;&lt;/span&gt;;
    &lt;span style="COLOR:blue;"&gt;public static readonly string &lt;/span&gt;Message         = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0x0107&amp;quot;&lt;/span&gt;;
    
    &lt;span style="COLOR:green;"&gt;// task
    &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public static readonly string &lt;/span&gt;Task            = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0x0108&amp;quot;&lt;/span&gt;;
    &lt;span style="COLOR:blue;"&gt;public static readonly string &lt;/span&gt;WorkflowTask    = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0x010801&amp;quot;&lt;/span&gt;;
    &lt;span style="COLOR:blue;"&gt;public static readonly string &lt;/span&gt;AdminTask       = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0x010802&amp;quot;&lt;/span&gt;;

    &lt;span style="COLOR:blue;"&gt;public static readonly string &lt;/span&gt;WorkflowHistory = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0x0109&amp;quot;&lt;/span&gt;;
    &lt;span style="COLOR:blue;"&gt;public static readonly string &lt;/span&gt;BlogPost        = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0x0110&amp;quot;&lt;/span&gt;;
    &lt;span style="COLOR:blue;"&gt;public static readonly string &lt;/span&gt;BlogComment     = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0x0111&amp;quot;&lt;/span&gt;;
    &lt;span style="COLOR:blue;"&gt;public static readonly string &lt;/span&gt;FarEastContact  = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0x0116&amp;quot;&lt;/span&gt;;
    
    &lt;span style="COLOR:green;"&gt;// folder
    &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public static readonly string &lt;/span&gt;Folder          = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0x0120&amp;quot;&lt;/span&gt;;
    &lt;span style="COLOR:blue;"&gt;public static readonly string &lt;/span&gt;RootOfList      = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0x012001&amp;quot;&lt;/span&gt;;
    &lt;span style="COLOR:blue;"&gt;public static readonly string &lt;/span&gt;Discussion      = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0x012002&amp;quot;&lt;/span&gt;;
}&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;Saved you some work, huh? 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;u&gt;&lt;font color="#000080"&gt;Updated (same day)&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p&gt;Here’s an example of using some Linq to get the best matching base content type:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="COLOR:blue;"&gt;private static string &lt;/span&gt;GetBaseType(&lt;span style="COLOR:blue;"&gt;string &lt;/span&gt;id)
{
    &lt;span style="COLOR:blue;"&gt;string &lt;/span&gt;baseTypeName = &lt;span style="COLOR:blue;"&gt;string&lt;/span&gt;.Empty;
    &lt;span style="COLOR:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="COLOR:#2b91af;"&gt;FieldInfo&lt;/span&gt;&amp;gt; fields = &lt;span style="COLOR:blue;"&gt;new &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="COLOR:#2b91af;"&gt;FieldInfo&lt;/span&gt;&amp;gt;(&lt;span style="COLOR:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="COLOR:#2b91af;"&gt;ContentTypePrefix&lt;/span&gt;).GetFields());

    &lt;span style="COLOR:green;"&gt;// get the values of the static fields
    &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;var &lt;/span&gt;fieldValues = &lt;span style="COLOR:blue;"&gt;from &lt;/span&gt;field &lt;span style="COLOR:blue;"&gt;in &lt;/span&gt;fields
                      &lt;span style="COLOR:blue;"&gt;select new &lt;/span&gt;{ Name = field.Name, Value = (&lt;span style="COLOR:blue;"&gt;string&lt;/span&gt;)field.GetValue(&lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;) };

    &lt;span style="COLOR:blue;"&gt;var &lt;/span&gt;baseTypes = &lt;span style="COLOR:blue;"&gt;from &lt;/span&gt;fieldValue &lt;span style="COLOR:blue;"&gt;in &lt;/span&gt;fieldValues
                    &lt;span style="COLOR:blue;"&gt;where &lt;/span&gt;id.StartsWith(fieldValue.Value)
                    &lt;span style="COLOR:blue;"&gt;orderby &lt;/span&gt;fieldValue.Value.Length &lt;span style="COLOR:blue;"&gt;descending
                    select &lt;/span&gt;fieldValue.Name;

    baseTypeName = baseTypes.First&amp;lt;&lt;span style="COLOR:blue;"&gt;string&lt;/span&gt;&amp;gt;();

    &lt;span style="COLOR:blue;"&gt;return &lt;/span&gt;baseTypeName;
}&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=167118" width="1" height="1"&gt;</content><author><name>justguy</name><uri>http://blogs.microsoft.co.il/members/justguy.aspx</uri></author></entry><entry><title>SharePoint list templates and base types</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/justguy/archive/2008/11/12/sharepoint-list-templates-and-base-types.aspx" /><id>http://blogs.microsoft.co.il/blogs/justguy/archive/2008/11/12/sharepoint-list-templates-and-base-types.aspx</id><published>2008-11-12T00:31:00Z</published><updated>2008-11-12T00:31:00Z</updated><content type="html">&lt;p&gt;Hi!&lt;/p&gt;
&lt;p&gt;I come across another strange request from the same client… &lt;br /&gt;I had something to do with displaying all items from all document libraries in the site.&lt;/p&gt;
&lt;p&gt;Trying to think caught me off guard, and I decided to go ahead and work with the &lt;a title="Heather Solomon&amp;#39;s Blog" target="_blank" href="http://www.heathersolomon.com/blog/articles/CustomItemStyle.aspx"&gt;CQWP&lt;/a&gt; (Content Query Web Part). &lt;br /&gt;I found it too complicated and uncustomizable (the client has fantasies about web development).&lt;/p&gt;
&lt;p&gt;Scratching my head a bit got me thinking about a nice web part I put together once: &lt;br /&gt;Get a list, use the &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/ms955050.aspx"&gt;GetDataTable()&lt;/a&gt; mehod, use &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/system.data.datatable.writexml.aspx"&gt;WriteXml()&lt;/a&gt; and parse the whole thing with XSL…&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;OK!&lt;/p&gt;
&lt;p&gt;What about *&lt;strong&gt;all&lt;/strong&gt;* the lists in the web site? &lt;br /&gt;First, the user must select the list template to base the query on (localized):&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="COLOR:#2b91af;"&gt;SPListTemplateCollection &lt;/span&gt;listTemplates = &lt;span style="COLOR:#2b91af;"&gt;SPContext&lt;/span&gt;.Current.Site.RootWeb.ListTemplates;
&lt;span style="COLOR:#2b91af;"&gt;SortedList &lt;/span&gt;list = &lt;span style="COLOR:blue;"&gt;new &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;SortedList&lt;/span&gt;();
&lt;span style="COLOR:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&amp;gt; templatesToIgnore = &lt;span style="COLOR:blue;"&gt;new &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&amp;gt;() { 110, 0x75, 0x76, 0x2776 };
&lt;span style="COLOR:#2b91af;"&gt;ListItem &lt;/span&gt;item = &lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;;

listTypeDropDown = &lt;span style="COLOR:blue;"&gt;new &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;DropDownList&lt;/span&gt;();

&lt;span style="COLOR:blue;"&gt;#region &lt;/span&gt;populate the list template drop down
&lt;span style="COLOR:blue;"&gt;foreach &lt;/span&gt;(&lt;span style="COLOR:#2b91af;"&gt;SPListTemplate &lt;/span&gt;template &lt;span style="COLOR:blue;"&gt;in &lt;/span&gt;listTemplates)
{
    &lt;span style="COLOR:blue;"&gt;int &lt;/span&gt;type = (&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;)template.Type;
    
    &lt;span style="COLOR:blue;"&gt;if &lt;/span&gt;(templatesToIgnore.Contains(type))
    {
        &lt;span style="COLOR:blue;"&gt;continue&lt;/span&gt;;
    }

    item = &lt;span style="COLOR:blue;"&gt;new &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;ListItem&lt;/span&gt;(template.Name, &lt;span style="COLOR:#2b91af;"&gt;Convert&lt;/span&gt;.ToString(type, &lt;span style="COLOR:#2b91af;"&gt;CultureInfo&lt;/span&gt;.InvariantCulture));
    list[item.Text] = item;
    item.Attributes.Add(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;BaseType&amp;quot;&lt;/span&gt;, template.BaseType.ToString(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;D&amp;quot;&lt;/span&gt;));
    
    &lt;span style="COLOR:#2b91af;"&gt;ListItem &lt;/span&gt;item2 = &lt;span style="COLOR:blue;"&gt;new &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;ListItem&lt;/span&gt;(&lt;span style="COLOR:#2b91af;"&gt;SPUtility&lt;/span&gt;.GetLocalizedString(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;$Resources:core,posts_schema_blg_title;&amp;quot;&lt;/span&gt;,
        &lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;, (&lt;span style="COLOR:blue;"&gt;uint&lt;/span&gt;)&lt;span style="COLOR:#2b91af;"&gt;CultureInfo&lt;/span&gt;.CurrentUICulture.LCID), &lt;span style="COLOR:#2b91af;"&gt;SPListTemplateType&lt;/span&gt;.Posts.ToString(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;d&amp;quot;&lt;/span&gt;));

    list[item2.Text] = item2;
    item2.Attributes.Add(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;BaseType&amp;quot;&lt;/span&gt;, &lt;span style="COLOR:#a31515;"&gt;&amp;quot;0&amp;quot;&lt;/span&gt;);
    &lt;span style="COLOR:#2b91af;"&gt;ListItem&lt;/span&gt;[] array = &lt;span style="COLOR:blue;"&gt;new &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;ListItem&lt;/span&gt;[list.Count];
    list.Values.CopyTo(array, 0);
    listTypeDropDown.Items.Clear();
    listTypeDropDown.Items.AddRange(array);

    &lt;span style="COLOR:green;"&gt;//if (string.IsNullOrEmpty(baseType))
    //{
    //    baseType = this.contentByQueryWebPart.ServerTemplate;
    //}
&lt;/span&gt;}&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;Second, get all the lists based on that type:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="COLOR:gray;"&gt;/// &amp;lt;summary&amp;gt;
/// &lt;/span&gt;&lt;span style="COLOR:green;"&gt;Retrieves all lists based of the specified template type in the provided web
&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;/// &amp;lt;/summary&amp;gt;
/// &amp;lt;param name=&amp;quot;parentWeb&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;
/// &amp;lt;param name=&amp;quot;listTemplateType&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;
/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;
/// &amp;lt;exception cref=&amp;quot;ArgumentException&amp;quot; /&amp;gt;
&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public static &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="COLOR:#2b91af;"&gt;SPList&lt;/span&gt;&amp;gt; GetListsByType(&lt;span style="COLOR:#2b91af;"&gt;SPWeb &lt;/span&gt;parentWeb, &lt;span style="COLOR:blue;"&gt;int &lt;/span&gt;listTemplateType)
{
    &lt;span style="COLOR:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="COLOR:#2b91af;"&gt;SPList&lt;/span&gt;&amp;gt; lists = &lt;span style="COLOR:blue;"&gt;new &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="COLOR:#2b91af;"&gt;SPList&lt;/span&gt;&amp;gt;();

    &lt;span style="COLOR:blue;"&gt;if &lt;/span&gt;(parentWeb == &lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;)
    {
        &lt;span style="COLOR:blue;"&gt;throw new &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;ArgumentException&lt;/span&gt;(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;parentWeb cannot be null&amp;quot;&lt;/span&gt;);
    }

    &lt;span style="COLOR:green;"&gt;// look for lists based of the requrested template type
    &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;foreach &lt;/span&gt;(&lt;span style="COLOR:#2b91af;"&gt;SPList &lt;/span&gt;list &lt;span style="COLOR:blue;"&gt;in &lt;/span&gt;parentWeb.Lists)
    {
        &lt;span style="COLOR:blue;"&gt;if &lt;/span&gt;((&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;)list.BaseTemplate == listTemplateType)
        {
            lists.Add(list);
        }
    }

    &lt;span style="COLOR:blue;"&gt;return &lt;/span&gt;lists;
}&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Cheers!&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=164667" width="1" height="1"&gt;</content><author><name>justguy</name><uri>http://blogs.microsoft.co.il/members/justguy.aspx</uri></author><category term="DEV" scheme="http://blogs.microsoft.co.il/blogs/justguy/archive/tags/DEV/default.aspx" /><category term="SharePoint" scheme="http://blogs.microsoft.co.il/blogs/justguy/archive/tags/SharePoint/default.aspx" /></entry><entry><title>What happens when your client requires list item aggregation from sub sites…</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/justguy/archive/2008/11/10/what-happens-when-your-client-requires-list-item-aggregation-from-sub-sites.aspx" /><id>http://blogs.microsoft.co.il/blogs/justguy/archive/2008/11/10/what-happens-when-your-client-requires-list-item-aggregation-from-sub-sites.aspx</id><published>2008-11-10T03:11:04Z</published><updated>2008-11-10T03:11:04Z</updated><content type="html">&lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Hi,&lt;/p&gt;  &lt;p&gt;As you all know, client have an annoying tendency of getting annoying.    &lt;br /&gt;Yes, I am talking about the money-makers!&lt;/p&gt;  &lt;p&gt;I came across this request:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Aggregate list items (news, tasks) from sub sites to the root site.      &lt;br /&gt;The condition for aggregation will be a site column named “&lt;strong&gt;Copy to Homepage&lt;/strong&gt;”. &lt;/li&gt;    &lt;li&gt;Aggregated items will require content approval. &lt;/li&gt;    &lt;li&gt;The client should be able to implement the same behavior himself (on programmers on board). &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;1st thing’s 1st… damn!&lt;/p&gt;  &lt;p&gt;Now let’s get to work…&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Step 1 - Aggregate the items – &lt;span style="color:#2b91af;"&gt;SPItemEventReceiver&lt;/span&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="color:#2b91af;"&gt;&lt;font color="#000000"&gt;If you’re not familiar with the &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spitemeventreceiver.aspx"&gt;SPItemEventReceiver&lt;/a&gt;&lt;span style="color:#2b91af;"&gt;&lt;/span&gt;, Google it.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="color:#2b91af;"&gt;&lt;font color="#000000"&gt;The event will check if the “Copy to Homepage” column is checked. If so, the following method will copy it:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;public static void &lt;/span&gt;CopyMoveListItem(
            &lt;span style="color:#2b91af;"&gt;SPListItem &lt;/span&gt;sourceItem,
            &lt;span style="color:#2b91af;"&gt;SPFolder &lt;/span&gt;destinationFolder,
            &lt;span style="color:blue;"&gt;bool &lt;/span&gt;deleteSourceItem)
        {

            &lt;span style="color:green;"&gt;// create a new item
            &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;SPListItem &lt;/span&gt;targetItem = GetListById(destinationFolder.ParentWeb, destinationFolder.ParentListId).Items.Add(
                destinationFolder.ServerRelativeUrl,
                sourceItem.FileSystemObjectType
                );

            &lt;span style="color:green;"&gt;// loop over the soureitem, restore it
            &lt;/span&gt;&lt;span style="color:blue;"&gt;for &lt;/span&gt;(&lt;span style="color:blue;"&gt;int &lt;/span&gt;i = sourceItem.Versions.Count - 1; i &amp;gt;= 0; i--)
            {
                &lt;span style="color:#2b91af;"&gt;SPListItemVersion &lt;/span&gt;version = sourceItem.Versions[i];

                &lt;span style="color:green;"&gt;//set the values into the archive
                &lt;/span&gt;&lt;span style="color:blue;"&gt;foreach &lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;SPField &lt;/span&gt;sourceField &lt;span style="color:blue;"&gt;in &lt;/span&gt;sourceItem.Fields)
                {&lt;br /&gt;&lt;span style="color:green;"&gt;                    // add the field to the new item make sure the field exists in the target list&lt;/span&gt; 
                    &lt;span style="color:blue;"&gt;if &lt;/span&gt;((!sourceField.ReadOnlyField) &amp;amp;&amp;amp; (sourceField.Type != &lt;span style="color:#2b91af;"&gt;SPFieldType&lt;/span&gt;.Attachments) &amp;amp;&amp;amp;&lt;br /&gt;                        targetItem.Fields.ContainsField(sourceField.Title))&lt;/pre&gt;

  &lt;pre class="code"&gt;                    {
                        targetItem[sourceField.Title] = version[sourceField.Title];
                    }
                    &lt;span style="color:blue;"&gt;else if &lt;/span&gt;(sourceField.Title == &lt;span style="color:#a31515;"&gt;&amp;quot;Created&amp;quot; &lt;/span&gt;&amp;amp;&amp;amp; sourceField.Title == &lt;span style="color:#a31515;"&gt;&amp;quot;Created By&amp;quot; &lt;/span&gt;&amp;amp;&amp;amp;
                        sourceField.Title == &lt;span style="color:#a31515;"&gt;&amp;quot;Modified&amp;quot; &lt;/span&gt;&amp;amp;&amp;amp; sourceField.Title == &lt;span style="color:#a31515;"&gt;&amp;quot;Modified By&amp;quot;&lt;/span&gt;)
                    {
                        targetItem[sourceField.Title] = version[sourceField.Title];
                    }
                }
                
                &lt;span style="color:green;"&gt;// update the new item
                &lt;/span&gt;targetItem.Update();
            }

            &lt;span style="color:green;"&gt;// copy the attachments (they are not versioned)
            &lt;/span&gt;&lt;span style="color:blue;"&gt;foreach &lt;/span&gt;(&lt;span style="color:blue;"&gt;string &lt;/span&gt;attachmentName &lt;span style="color:blue;"&gt;in &lt;/span&gt;sourceItem.Attachments)
            {
                &lt;span style="color:#2b91af;"&gt;SPFile &lt;/span&gt;file = sourceItem.ParentList.ParentWeb.GetFile(
                    sourceItem.Attachments.UrlPrefix + attachmentName);
                
                targetItem.Attachments.Add(attachmentName, file.OpenBinary());
            }
            
            targetItem.Update();

            &lt;span style="color:green;"&gt;// delete the source item if needed
            &lt;/span&gt;&lt;span style="color:blue;"&gt;if &lt;/span&gt;(deleteSourceItem)
            {
                sourceItem.Delete();
            }
        }&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;Notes:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;This code is based on something I found once. If you recognize your code, let me know. I’ll give you the credit :) &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;GetListById&lt;/strong&gt; returns the parent list of the item. It’s too simple for blog posts. &lt;/li&gt;

  &lt;li&gt;When adding the code to the &lt;span style="color:#2b91af;"&gt;SPItemEventReceiver&lt;/span&gt;, I’d cosider using &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.speventreceiverbase.disableeventfiring.aspx"&gt;DisableEventFiring Method&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.speventreceiverbase.enableeventfiring.aspx"&gt;EnableEventFiring Method&lt;/a&gt;. 

    &lt;br /&gt;If you modify an item, you might cause the event to fire again for the update. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
  &lt;br /&gt;That got me thinking about letting the &lt;strong&gt;ItemAdded&lt;/strong&gt; method where the target list is located… 

  &lt;br /&gt;I used the &lt;strong&gt;web.config&lt;/strong&gt;…&lt;/p&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Step 2 – Content Approval&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;This is a simple step that you can Google up… 
  &lt;br /&gt;&lt;a target="_blank" href="http://support.microsoft.com/kb/825239"&gt;Here&lt;/a&gt;’s an example.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Step 3 – User Friendly GUI for Event Receivers&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;The biggest issue in this entire escapade is allowing non-programming users to attach event receivers to new lists.&lt;/p&gt;

&lt;p&gt;Then I came across Gaetan Bouveret’s &lt;a target="_blank" href="http://www.codeplex.com/speventsmanager"&gt;SharePoint Events Manager&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Enough with the writing!&lt;/p&gt;

&lt;p&gt;Adi.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=163771" width="1" height="1"&gt;</content><author><name>justguy</name><uri>http://blogs.microsoft.co.il/members/justguy.aspx</uri></author><category term="DEV" scheme="http://blogs.microsoft.co.il/blogs/justguy/archive/tags/DEV/default.aspx" /><category term="SharePoint" scheme="http://blogs.microsoft.co.il/blogs/justguy/archive/tags/SharePoint/default.aspx" /></entry><entry><title>Debugging IIS: Identifying the Worker Process Process ID</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/justguy/archive/2008/09/14/debugging-iis-identifying-the-worker-process-process-id.aspx" /><id>http://blogs.microsoft.co.il/blogs/justguy/archive/2008/09/14/debugging-iis-identifying-the-worker-process-process-id.aspx</id><published>2008-09-14T01:34:29Z</published><updated>2008-09-14T01:34:29Z</updated><content type="html">&lt;p&gt;&lt;/p&gt;  &lt;p&gt;Hi,&lt;/p&gt;  &lt;p&gt;When working on a shared environment with several web applications, attaching to IIS processes may cause a problem.   &lt;br /&gt;Developers have a nasty habit of attaching to &lt;strong&gt;all&lt;/strong&gt; IIS process, thus making it impossible for other users to work on the server.&lt;/p&gt;  &lt;p&gt;Finding the required process ID is quite simple, enabling you to attach only to the process you require.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Here goes:&lt;/p&gt;  &lt;p&gt;Run &lt;strong&gt;&lt;a title="Identifying the Worker Process Process ID (IIS 6.0)" href="http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/2228ff79-0838-4143-8680-e38c452dc243.mspx?mfr=true" target="_blank"&gt;iisapp.vbs&lt;/a&gt;&lt;/strong&gt; from command prompt (Start –&amp;gt; Run –&amp;gt; cmd).    &lt;br /&gt;You’ll get something like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/justguy/WindowsLiveWriter/DebuggingIISIdentifyingtheWorkerProcessP_A2F4/image_10.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="123" alt="image" src="http://blogs.microsoft.co.il/blogs/justguy/WindowsLiveWriter/DebuggingIISIdentifyingtheWorkerProcessP_A2F4/image_thumb_4.png" width="464" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Note you get the application name and the processs ID (PID).&lt;/p&gt;  &lt;p&gt;Now you attach to the process you need and leave the rest alone:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/justguy/WindowsLiveWriter/DebuggingIISIdentifyingtheWorkerProcessP_A2F4/image_6.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="193" alt="image" src="http://blogs.microsoft.co.il/blogs/justguy/WindowsLiveWriter/DebuggingIISIdentifyingtheWorkerProcessP_A2F4/image_thumb_2.png" width="287" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Important note:     &lt;br /&gt;&lt;/strong&gt;When doing a IISRESET or recycling the application pool, &lt;u&gt;the process ID changes&lt;/u&gt;.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=139356" width="1" height="1"&gt;</content><author><name>justguy</name><uri>http://blogs.microsoft.co.il/members/justguy.aspx</uri></author></entry><entry><title>SharePoint Data View - ddwrt Namespace: IfNew() and Friends</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/justguy/archive/2008/09/07/sharepoint-data-view-ddwrt-namespace-ifnew-and-friends.aspx" /><id>http://blogs.microsoft.co.il/blogs/justguy/archive/2008/09/07/sharepoint-data-view-ddwrt-namespace-ifnew-and-friends.aspx</id><published>2008-09-07T05:01:05Z</published><updated>2008-09-07T05:01:05Z</updated><content type="html">&lt;p&gt;Ever wonder how that “&lt;strong&gt;&lt;font color="#0c7611"&gt;New!”&lt;/font&gt;&lt;/strong&gt; (new.gif) image appears next to list items?&lt;/p&gt;  &lt;p&gt;SharePoint Data Views use the &lt;strong&gt;ddwrt&lt;/strong&gt; XSL namespace generated automatically like so:&lt;/p&gt;  &lt;pre class="code"&gt;&amp;lt;xsl:&lt;span style="color:blue;"&gt;if &lt;/span&gt;test=&lt;span style="color:#a31515;"&gt;&amp;quot;ddwrt:&lt;strong&gt;IfNew&lt;/strong&gt;(string(@Created))&amp;quot;&lt;/span&gt;&amp;gt;
    &amp;lt;img src=&lt;span style="color:#a31515;"&gt;&amp;quot;/_layouts/1033/images/new.gif&amp;quot; &lt;/span&gt;alt=&lt;span style="color:#a31515;"&gt;&amp;quot;New&amp;quot; &lt;/span&gt;/&amp;gt;
&amp;lt;/xsl:&lt;span style="color:blue;"&gt;if&lt;/span&gt;&amp;gt; &lt;/pre&gt;

&lt;pre class="code"&gt;BTW, items are considered &amp;quot;new&amp;quot; if it was posted within the past 2 days…&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;Read more: &lt;a href="http://msdn.microsoft.com/en-us/library/aa505323.aspx" target="_blank"&gt;MSDN: SharePoint Data View Web Part Extension Functions in the ddwrt Namespace&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=135137" width="1" height="1"&gt;</content><author><name>justguy</name><uri>http://blogs.microsoft.co.il/members/justguy.aspx</uri></author></entry><entry><title>Empty application.master</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/justguy/archive/2008/08/31/empty-application-master.aspx" /><id>http://blogs.microsoft.co.il/blogs/justguy/archive/2008/08/31/empty-application-master.aspx</id><published>2008-08-31T06:03:13Z</published><updated>2008-08-31T06:03:13Z</updated><content type="html">&lt;p&gt;Hi,&lt;/p&gt;  &lt;p&gt;I you ever need it, this may prove very time consuming…&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="background:#ffee62;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color:blue;"&gt;@&lt;/span&gt;&lt;span style="color:red;"&gt;Master language&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;C#&amp;quot;&lt;/span&gt;&lt;span style="background:#ffee62;"&gt;%&amp;gt;
&amp;lt;%&lt;/span&gt;&lt;span style="color:blue;"&gt;@ &lt;/span&gt;&lt;span style="color:#a31515;"&gt;Register &lt;/span&gt;&lt;span style="color:red;"&gt;Tagprefix&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;SharePoint&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Namespace&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Microsoft.SharePoint.WebControls&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Assembly&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&amp;quot; &lt;/span&gt;&lt;span style="background:#ffee62;"&gt;%&amp;gt;
&amp;lt;%&lt;/span&gt;&lt;span style="color:blue;"&gt;@ &lt;/span&gt;&lt;span style="color:#a31515;"&gt;Import &lt;/span&gt;&lt;span style="color:red;"&gt;Namespace&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Microsoft.SharePoint&amp;quot; &lt;/span&gt;&lt;span style="background:#ffee62;"&gt;%&amp;gt;
&amp;lt;%&lt;/span&gt;&lt;span style="color:blue;"&gt;@ &lt;/span&gt;&lt;span style="color:#a31515;"&gt;Import &lt;/span&gt;&lt;span style="color:red;"&gt;Namespace&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Microsoft.SharePoint.ApplicationPages&amp;quot; &lt;/span&gt;&lt;span style="background:#ffee62;"&gt;%&amp;gt;
&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;HTML &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;HTML1&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;dir&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;&lt;/span&gt;&lt;span style="background:#ffee62;"&gt;&amp;lt;%&lt;/span&gt;$Resources:wss,multipages_direction_dir_value&lt;span style="background:#ffee62;"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot;&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;HEAD &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;HEAD1&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SharePoint&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;CssLink &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot;/&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SharePoint&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ScriptLink &lt;/span&gt;&lt;span style="color:red;"&gt;language&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;javascript&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;core.js&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SharePoint&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;CustomJSUrl &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SharePoint&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SoapDiscoveryLink &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;HEAD&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;BODY&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
  &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;form &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Form1&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;onsubmit&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;return _spFormOnSubmitWrapper();&amp;quot;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderAdditionalPageHead&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot;/&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=PlaceHolderPageTitle &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot;/&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderMain&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderGlobalNavigation&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderGlobalNavigationSiteMap&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderSiteName&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderSearchArea&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderTopNavBar&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;WSSDesignConsole&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;SPNavigation&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderPageImage&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderTitleLeftBorder&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderTitleAreaClass&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderTitleBreadcrumb&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderPageTitleInTitleArea&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderMiniConsole&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderTitleRightMargin&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderTitleAreaSeparator&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderLeftNavBarDataSource&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderCalendarNavigator&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderLeftNavBarTop&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot;/&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderLeftNavBar&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderLeftActions&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderLeftNavBarBorder&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderBodyLeftBorder&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderBodyAreaClass&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderPageDescriptionRowAttr&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot;/&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderPageDescription&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderPageDescriptionRowAttr2&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderBodyRightMargin&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderUtilityContent&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ContentPlaceHolder &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;PlaceHolderFormDigest&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; /&amp;gt; 
  &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;form&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;BODY&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;HTML&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=133693" width="1" height="1"&gt;</content><author><name>justguy</name><uri>http://blogs.microsoft.co.il/members/justguy.aspx</uri></author></entry><entry><title>Hack Windows SharePoint Services 3.0 Tools: Visual Studio 2005 Extensions (VSeWSS) on Vista</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/justguy/archive/2008/08/31/hack-windows-sharepoint-services-3-0-tools-visual-studio-2005-extensions-vsewss-on-vista.aspx" /><id>http://blogs.microsoft.co.il/blogs/justguy/archive/2008/08/31/hack-windows-sharepoint-services-3-0-tools-visual-studio-2005-extensions-vsewss-on-vista.aspx</id><published>2008-08-30T22:26:40Z</published><updated>2008-08-30T22:26:40Z</updated><content type="html">&lt;p&gt;&lt;/p&gt;  &lt;p&gt;I came across this great &lt;a href="http://eknowledger.spaces.live.com/blog/cns!F475D4DE444DB1AB!2922.entry" target="_blank"&gt;post&lt;/a&gt; by &lt;strong&gt;Ahmed El Malt&lt;/strong&gt;…&lt;/p&gt;  &lt;p&gt;&lt;img src="http://sxai5g.blu.livefilestore.com/y1p-Y4-VMuHlL2f5px8a6cQprZuhS8Ajv6_RzfC8F8PT7hH5xCZIUt__b1qG9ar4fbKPBKrhvtINhhS2kkLuYzSDlVuMeo98zZW?PARTNER=WRITER" alt="" /&gt;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=133631" width="1" height="1"&gt;</content><author><name>justguy</name><uri>http://blogs.microsoft.co.il/members/justguy.aspx</uri></author></entry><entry><title>SharePoint Shared Services Personalization Permissions Check</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/justguy/archive/2008/08/17/sharepoint-shared-services-personalization-permissions-check.aspx" /><id>http://blogs.microsoft.co.il/blogs/justguy/archive/2008/08/17/sharepoint-shared-services-personalization-permissions-check.aspx</id><published>2008-08-17T02:10:15Z</published><updated>2008-08-17T02:10:15Z</updated><content type="html">&lt;p&gt;Hi,&lt;/p&gt;  &lt;p&gt;I needed to know if a user has permissions to manage user profiles (create, delete, etc.).   &lt;br /&gt;Some reflecting showed me that all relevant methods were &lt;strong&gt;internal&lt;/strong&gt;. “Damn” was the word I used.&lt;/p&gt;  &lt;p&gt;I have come across this &lt;a href="http://stsadm.blogspot.com/2007/11/personalization-service-permissions.html" target="_blank"&gt;post&lt;/a&gt; by &lt;strong&gt;Gary Lapointe&lt;/strong&gt;, and have decided I need something a little simpler:&lt;/p&gt;  &lt;p&gt;&lt;span style="color:gray;"&gt;/// &amp;lt;summary&amp;gt;     &lt;br /&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;Checks if the provided user has the permissions set in the rightMast     &lt;br /&gt;&lt;/span&gt;&lt;span style="color:gray;"&gt;/// &amp;lt;/summary&amp;gt;     &lt;br /&gt;/// &amp;lt;example&amp;gt;      &lt;br /&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;bool canManageProfiles = DoesUserHaveSSPRights(ServerContext.Current, &amp;quot;DOMAIN\\myusername&amp;quot;, SharedServiceRights.ManageUserProfiles | SharedServiceRights.UsePersonalFeatures);     &lt;br /&gt;&lt;/span&gt;&lt;span style="color:gray;"&gt;/// &amp;lt;/example&amp;gt;     &lt;br /&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;public static bool &lt;/span&gt;DoesUserHaveSSPRights(&lt;span style="color:#2b91af;"&gt;ServerContext &lt;/span&gt;context, &lt;span style="color:blue;"&gt;string&lt;/span&gt;username, &lt;span style="color:#2b91af;"&gt;SharedServiceRights &lt;/span&gt;rightMask)    &lt;br /&gt;{    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt;(GetUserSSPRights(context, username) &amp;amp; rightMask) == rightMask;    &lt;br /&gt;}    &lt;br /&gt;    &lt;br /&gt;&lt;span style="color:gray;"&gt;/// &amp;lt;summary&amp;gt;     &lt;br /&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;Gets the user&amp;#39;s Personalization Services rights     &lt;br /&gt;&lt;/span&gt;&lt;span style="color:gray;"&gt;/// &amp;lt;/summary&amp;gt;     &lt;br /&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;public static &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;SharedServiceRights &lt;/span&gt;GetUserSSPRights(&lt;span style="color:#2b91af;"&gt;ServerContext &lt;/span&gt;context, &lt;span style="color:blue;"&gt;string &lt;/span&gt;username)    &lt;br /&gt;{    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;Type &lt;/span&gt;sharedServiceAccessControlListType = &lt;span style="color:#2b91af;"&gt;Type&lt;/span&gt;.GetType(&lt;span style="color:#a31515;"&gt;&amp;quot;Microsoft.Office.Server.Infrastructure.SharedServiceAccessControlList, Microsoft.Office.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&amp;quot;&lt;/span&gt;);    &lt;br /&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;MethodInfo &lt;/span&gt;sharedServiceAccessControlListMethod =    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sharedServiceAccessControlListType.GetMethod(&lt;span style="color:#a31515;"&gt;&amp;quot;GetInstance&amp;quot;&lt;/span&gt;,    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;BindingFlags&lt;/span&gt;.NonPublic |    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;BindingFlags&lt;/span&gt;.Public |    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;BindingFlags&lt;/span&gt;.Instance |    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;BindingFlags&lt;/span&gt;.InvokeMethod |    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;BindingFlags&lt;/span&gt;.FlattenHierarchy |    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;BindingFlags&lt;/span&gt;.Static,    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;null&lt;/span&gt;,    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Type&lt;/span&gt;[] { &lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;ServerContext&lt;/span&gt;) },    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;null     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;);    &lt;br /&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;object &lt;/span&gt;acl = sharedServiceAccessControlListMethod.Invoke(    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;null&lt;/span&gt;,    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;new object&lt;/span&gt;[] { context }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; );    &lt;br /&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;PropertyInfo &lt;/span&gt;itemProp = acl.GetType().GetProperty(&lt;span style="color:#a31515;"&gt;&amp;quot;Item&amp;quot;&lt;/span&gt;,    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;BindingFlags&lt;/span&gt;.NonPublic |    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;BindingFlags&lt;/span&gt;.Instance |    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;BindingFlags&lt;/span&gt;.InvokeMethod |    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;BindingFlags&lt;/span&gt;.GetProperty |    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;BindingFlags&lt;/span&gt;.Public    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; );    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;SharedServiceAccessControlEntry &lt;/span&gt;aclEntry =    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (&lt;span style="color:#2b91af;"&gt;SharedServiceAccessControlEntry&lt;/span&gt;)itemProp.GetValue(    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; acl,    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;new object&lt;/span&gt;[] { username }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; );    &lt;br /&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:green;"&gt;// check if the user has any permissions     &lt;br /&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt;(aclEntry != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt;aclEntry.Rights;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;else     &lt;br /&gt;&amp;#160;&amp;#160; &lt;/span&gt;{    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:green;"&gt;// the user is not even in the list     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;return &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;SharedServiceRights&lt;/span&gt;.None;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;}&lt;/p&gt; &lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;strong&gt;Comments:&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Add a reference to &lt;strong&gt;Microsoft.Office.Server&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Using:&lt;/p&gt;  &lt;p&gt;&lt;span style="color:blue;"&gt;using &lt;/span&gt;Microsoft.Office.Server;    &lt;br /&gt;&lt;span style="color:blue;"&gt;using &lt;/span&gt;Microsoft.Office.Server.Infrastructure;    &lt;br /&gt;&lt;span style="color:blue;"&gt;using &lt;/span&gt;Microsoft.SharePoint.Administration;    &lt;br /&gt;&lt;span style="color:blue;"&gt;using &lt;/span&gt;Microsoft.SharePoint;    &lt;br /&gt;&lt;span style="color:blue;"&gt;using &lt;/span&gt;System.Reflection;&lt;/p&gt; &lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=131007" width="1" height="1"&gt;</content><author><name>justguy</name><uri>http://blogs.microsoft.co.il/members/justguy.aspx</uri></author></entry><entry><title>Checking if a Publishing page is in edit mode</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/justguy/archive/2008/08/13/checking-if-a-publishing-page-is-in-edit-mode.aspx" /><id>http://blogs.microsoft.co.il/blogs/justguy/archive/2008/08/13/checking-if-a-publishing-page-is-in-edit-mode.aspx</id><published>2008-08-13T02:14:22Z</published><updated>2008-08-13T02:14:22Z</updated><content type="html">&lt;p&gt;… and avoiding ASP.NET validator errors such as:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;font color="#ff0000"&gt;This page contains content or formatting that is not valid. You can find more information in the affected sections.&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;or&lt;/p&gt;  &lt;p&gt;&lt;i&gt;&lt;font color="#ff0000"&gt;Input string was not in a correct format.&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hi,&lt;/p&gt;  &lt;p&gt;After being asked by a customer to create a web part diaplying a form with validation on input fields, I have come acoross a problem.    &lt;br /&gt;It turns out that &lt;strong&gt;ASP.NET validators can prevent you from checking in or editing Publishing pages&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Searching for solution I have come across a few:&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2"&gt;     &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;ul&gt;           &lt;li&gt;&lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p&gt;Check if the web part is in edit or design mode and only add the validator if not:&lt;/p&gt;          &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;if &lt;/span&gt;(&lt;span style="color:blue;"&gt;this&lt;/span&gt;.WebPartManager.DisplayMode != &lt;span style="color:#2b91af;"&gt;WebPartManager&lt;/span&gt;.EditDisplayMode &amp;amp;&amp;amp;
    &lt;span style="color:blue;"&gt;this&lt;/span&gt;.WebPartManager.DisplayMode != &lt;span style="color:#2b91af;"&gt;WebPartManager&lt;/span&gt;.DesignDisplayMode)
{
    &lt;span style="color:green;"&gt;// in display mode
&lt;/span&gt;}&lt;/pre&gt;

        &lt;pre class="code"&gt;This solution applies only if you have a single web part on the page, because you can only check if the current web part is in display/edit/design mode.&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td valign="top"&gt;
        &lt;ul&gt;
          &lt;li&gt;&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/td&gt;

      &lt;td valign="top"&gt;Another solution is using the &lt;span style="color:#2b91af;"&gt;EditModePanel&lt;/span&gt;. It allows you to add contols to the page in &lt;strong&gt;display or edit mode.&lt;/strong&gt; 

        &lt;br /&gt;For example: 

        &lt;br /&gt;

        &lt;br /&gt;&lt;span style="color:green;"&gt;// add the EditBox to the page in edit mode 
          &lt;br /&gt;&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;EditModePanel&lt;/span&gt;panel = &lt;span style="color:blue;"&gt;new&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;EditModePanel&lt;/span&gt;(); 

        &lt;br /&gt;&lt;span style="color:#2b91af;"&gt;TextBox&lt;/span&gt;textBox = &lt;span style="color:blue;"&gt;new&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;TextBox&lt;/span&gt;(); 

        &lt;br /&gt;

        &lt;br /&gt;panel.Controls.Add(textBox); 

        &lt;br /&gt;panel.PageDisplayMode = &lt;span style="color:#2b91af;"&gt;PageDisplayMode&lt;/span&gt;.Edit; 

        &lt;br /&gt;&lt;span style="color:blue;"&gt;this&lt;/span&gt;.Controls.Add(panel); 

        &lt;br /&gt;

        &lt;br /&gt;

        &lt;br /&gt;This solution didn’t work. Some replection shows me that the panel uses this function (which is obfuscated): &lt;span style="color:blue;"&gt;public static&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;SPControlMode&lt;/span&gt;GetContextualFormModeFromPostedForm() 

        &lt;br /&gt;This function comes from the &lt;strong&gt;internal &lt;/strong&gt;class &lt;a href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Microsoft.SharePoint.Publishing:12.0.0.0:71e9bce111e9429c/Microsoft.SharePoint.Publishing.WebControls.ConsoleUtilities"&gt;ConsoleUtilities&lt;/a&gt;.&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td valign="top"&gt;
        &lt;ul&gt;
          &lt;li&gt;&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/td&gt;

      &lt;td valign="top"&gt;The solution that worked for me was quite simple: 
        &lt;br /&gt;

        &lt;br /&gt;

        &lt;pre class="code"&gt;&lt;span style="color:green;"&gt;// check if the form is in display mode
&lt;/span&gt;&lt;span style="color:blue;"&gt;bool &lt;/span&gt;inDisplayMode = &lt;span style="color:#2b91af;"&gt;SPContext&lt;/span&gt;.Current.FormContext.FormMode == &lt;span style="color:#2b91af;"&gt;SPControlMode&lt;/span&gt;.Display;&lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Well, good luck ;)&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=130258" width="1" height="1"&gt;</content><author><name>justguy</name><uri>http://blogs.microsoft.co.il/members/justguy.aspx</uri></author></entry><entry><title>FBA in SharePoint – Everything you’ve ever wanted to do - continued</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/justguy/archive/2008/08/01/fba-in-sharepoint-everything-you-ve-ever-wanted-to-do-continued.aspx" /><id>http://blogs.microsoft.co.il/blogs/justguy/archive/2008/08/01/fba-in-sharepoint-everything-you-ve-ever-wanted-to-do-continued.aspx</id><published>2008-08-01T00:23:09Z</published><updated>2008-08-01T00:23:09Z</updated><content type="html">&lt;p&gt;Hi,&lt;/p&gt;  &lt;p&gt;This is my 2nd post on this subject.&lt;/p&gt;  &lt;p&gt;This post will get down and dirty with code samples. The first post contains some background info and links to tutorials and guides. I recommand you have a look unless you’re a no-fear-willing-to-spand-days-making-this-work like me :)&lt;/p&gt;  &lt;p&gt;To user user profiles with FBA users, you’ll have to extend &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Chapter 3 – UserProfileManager and FBA (provider issues)&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;First thing’s first: &lt;strong&gt;THERE ARE 2, YES, 2, UserProfileManager CLASSES&lt;/strong&gt;. The &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.portal.userprofiles.userprofilemanager.aspx" target="_blank"&gt;first&lt;/a&gt; (Microsoft.SharePoint.Portal.UserProfiles) is obsolete. The &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.office.server.userprofiles.userprofilemanager.aspx" target="_blank"&gt;second&lt;/a&gt; (Microsoft.Office.Server.UserProfiles)&amp;#160; is not.&lt;/p&gt;  &lt;p&gt;I’ll use the one in the Microsoft.Office namespace. Note there are differences between them as well as between the corresponding &lt;strong&gt;UserProfile&lt;/strong&gt; classes.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;User Profiles in MOSS&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;User profiles are a nice feature in MOSS. They allow you to store meta data about the users in your portal importing it from other sources (&lt;a href="http://blah.winsmarts.com/2006-11-SharePoint_2007__Importing_User_Profile_information.aspx" target="_blank"&gt;SharePoint 2007: Importing User Profile Information&lt;/a&gt; by &lt;b&gt;Sahil Malik&lt;/b&gt;).&lt;/p&gt;  &lt;p&gt;User information commonly stored in user profiles includes: first and last name, birthday, manager name, company, department, address etc. &lt;strong&gt;User profiles are stored in a SSP&lt;/strong&gt; making them available throughout the farm.&lt;/p&gt;  &lt;p&gt;You can add and change the user profile properties using the management interface:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Central Administration –&amp;gt; Shared Services Provider –&amp;gt; User Profiles and Properties&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;For more info, try Google or Live! search.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Retrieving User Profile Info&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;In order to retrieve user profile info, you’ll have to have the SSP up and running. If it’s not, you’ll get errors trying to user a &lt;strong&gt;UserProfileManager&lt;/strong&gt; object.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Create a new UserProfileManager object:      &lt;br /&gt;      &lt;br /&gt;&lt;span style="color:#2b91af;"&gt;UserProfileManager &lt;/span&gt;userProfileManager = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;UserProfileManager&lt;/span&gt;();       &lt;br /&gt;      &lt;br /&gt;This will create profile manager that will work in the context of the current site and the assigned SSP.       &lt;br /&gt;You can retrieve user profile information from other SSPs in the farm using this function:       &lt;pre class="code"&gt;&lt;span style="color:gray;"&gt;/// &amp;lt;summary&amp;gt;
/// &lt;/span&gt;&lt;span style="color:green;"&gt;Creates a &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;see cref=&amp;quot;UserProfileManager&amp;quot;/&amp;gt; &lt;/span&gt;&lt;span style="color:green;"&gt;object for a specific site collection
&lt;/span&gt;&lt;span style="color:gray;"&gt;/// 
/// &lt;/span&gt;&lt;span style="color:green;"&gt;Note the functions contains no error handling what so ever
&lt;/span&gt;&lt;span style="color:gray;"&gt;/// &amp;lt;/summary&amp;gt;
/// &amp;lt;param name=&amp;quot;siteURL&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:green;"&gt;The URL of the site&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/param&amp;gt;
/// &amp;lt;returns&amp;gt;&lt;/span&gt;&lt;span style="color:green;"&gt;The &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;see cref=&amp;quot;UserProfileManager&amp;quot;/&amp;gt; &lt;/span&gt;&lt;span style="color:green;"&gt;object for the site collection&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/returns&amp;gt;
&lt;/span&gt;&lt;span style="color:blue;"&gt;public &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;UserProfileManager &lt;/span&gt;GetUserProfileManagerForAnotherSite(&lt;span style="color:blue;"&gt;string &lt;/span&gt;siteURL)
{
    &lt;span style="color:#2b91af;"&gt;SPSite &lt;/span&gt;anotherSite = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;SPSite&lt;/span&gt;(siteURL);       &lt;span style="color:green;"&gt;// reference the other site collection
    &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;ServerContext &lt;/span&gt;serverContext = &lt;span style="color:#2b91af;"&gt;ServerContext&lt;/span&gt;.GetContext(anotherSite);        &lt;span style="color:green;"&gt;// get the server context
    &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;UserProfileManager &lt;/span&gt;userProfileManager = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;UserProfileManager&lt;/span&gt;(serverContext);      &lt;span style="color:green;"&gt;// create the profile manager object

    &lt;/span&gt;&lt;span style="color:blue;"&gt;return &lt;/span&gt;userProfileManager;
}&lt;/pre&gt;

    &lt;pre class="code"&gt;This function will be useful for bridging the gap between a site using Windows Authentication and a site using FBA.&lt;br /&gt;You could access user profile info from either site using the correct context of &lt;span style="color:#2b91af;"&gt;UserProfileManager&lt;font color="#000000"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;pre class="code"&gt;To create a user profile, use: &lt;span style="color:#2b91af;"&gt;
      &lt;br /&gt;UserProfile &lt;/span&gt;profile = userProfileManager.CreateUserProfile();&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:green;"&gt;// create a profile for the current user   &lt;br /&gt;or   &lt;br /&gt;&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;UserProfile &lt;/span&gt;profile = userProfileManager.CreateUserProfile(&lt;span style="color:#a31515;"&gt;&amp;quot;&lt;strong&gt;domain\\username&lt;/strong&gt;&amp;quot;&lt;/span&gt;);&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:green;"&gt;// create a profile for the provided user    &lt;br /&gt;or    &lt;br /&gt;&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;UserProfile &lt;/span&gt;profile = userProfileManager.CreateUserProfile(&lt;span style="color:#a31515;"&gt;&amp;quot;&lt;strong&gt;Provider name:username&lt;/strong&gt;&amp;quot;&lt;/span&gt;);&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:green;"&gt;// create a profile for the provided user (FBA)&lt;/span&gt;&lt;span style="color:green;"&gt;
           &lt;br /&gt;&lt;font color="#000000"&gt;&lt;u&gt;Where:&lt;/u&gt;       &lt;br /&gt;&lt;em&gt;Provider name&lt;/em&gt; is the name of the default membership provider defined in the web.config.
       &lt;br /&gt;Example:&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;membership defaultProvider=&amp;quot;FBADemoMember&amp;quot;&amp;gt;
        &lt;br /&gt;&lt;em&gt;Username&lt;/em&gt; is the name of the user from the membership database.&lt;/font&gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#ff0000"&gt;Note &lt;/font&gt;that unlike domain users that use ‘&lt;strong&gt;\’&lt;/strong&gt; as a separator, FBA user require ‘&lt;strong&gt;:’&lt;/strong&gt;. &lt;/pre&gt;
  &lt;/li&gt;

  &lt;li&gt;Get the user profile for the current user: 
    &lt;br /&gt;&lt;span style="color:#2b91af;"&gt;
      &lt;br /&gt;UserProfile &lt;/span&gt;profile = userProfileManager.GetUserProfile(false); 

    &lt;br /&gt;

    &lt;br /&gt;The user’s profile can be null if there was no profile created. GetUserProfile can create the user profile if needed when you set &lt;strong&gt;bCreateIfNoExist&lt;/strong&gt; to &lt;em&gt;true&lt;/em&gt;: 

    &lt;br /&gt;&lt;span style="color:#2b91af;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; UserProfile &lt;/span&gt;profile = userProfileManager.GetUserProfile(&lt;strong&gt;true&lt;/strong&gt;);&amp;#160; &lt;br /&gt;

    &lt;br /&gt;GetUserProfile will allow you to retrieve user profiles for user by users referenced by username: 

    &lt;br /&gt;

    &lt;pre class="code"&gt;&lt;span style="color:#2b91af;"&gt;UserProfile &lt;/span&gt;profile = userProfileManager.GetUserProfile(&lt;span style="color:#a31515;"&gt;&amp;quot;domain\\username&amp;quot;&lt;/span&gt;);    &lt;span style="color:green;"&gt;// retrieve the user profile for a domain user
&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;UserProfile &lt;/span&gt;profile = userProfileManager.GetUserProfile(&lt;span style="color:#a31515;"&gt;&amp;quot;Provider name:username&amp;quot;&lt;/span&gt;);    &lt;span style="color:green;"&gt;// retrieve the user profile for a FBA user&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;
  &lt;/li&gt;

  &lt;li&gt;As you can imagine, deleting a user profile will be quite simple. I’ll skip the code sample. 
    &lt;br /&gt;&lt;/li&gt;

  &lt;li&gt;Setting values in user profiles or retriving them is as easy a using any other collection. The only challenge is using the correct property names (not display names, but internal names). To help you out, you can use &lt;span style="color:#2b91af;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.office.server.userprofiles.propertyconstants.aspx" target="_blank"&gt;PropertyConstants&lt;/a&gt;&lt;font color="#000000"&gt; for the OOO stuff&lt;/font&gt;. 

      &lt;br /&gt;

      &lt;br /&gt;&lt;font color="#000000"&gt;Examples: 
        &lt;br /&gt;

        &lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;string &lt;/span&gt;firstName = (&lt;span style="color:blue;"&gt;string&lt;/span&gt;)profile[&lt;span style="color:#2b91af;"&gt;PropertyConstants&lt;/span&gt;.FirstName].Value; 

    &lt;br /&gt;&lt;span style="color:blue;"&gt;string &lt;/span&gt;lastName = (&lt;span style="color:blue;"&gt;string&lt;/span&gt;)profile[&lt;span style="color:#2b91af;"&gt;PropertyConstants&lt;/span&gt;.LastName].Value; 

    &lt;br /&gt;&lt;span style="color:#2b91af;"&gt;DateTime &lt;/span&gt;hireDate = (&lt;span style="color:#2b91af;"&gt;DateTime&lt;/span&gt;)profile[&lt;span style="color:#2b91af;"&gt;PropertyConstants&lt;/span&gt;.HireDate].Value; 

    &lt;br /&gt;&lt;span style="color:blue;"&gt;string &lt;/span&gt;myCustomProperty = (&lt;span style="color:blue;"&gt;string&lt;/span&gt;)profile[&lt;span style="color:#a31515;"&gt;&amp;quot;MyCustomPropertyName&amp;quot;&lt;/span&gt;].Value;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:green;"&gt;// retrieve the value for a custom property&lt;/span&gt; 

    &lt;pre class="code"&gt;Choice fields have multiple values, and you can take a look at this post: &lt;strong&gt;&lt;a href="http://blogs.interakting.co.uk/danmatthews/archive/2007/04/24/40.aspx" target="_blank"&gt;Setting MOSS User Profile properties&lt;/a&gt;&lt;/strong&gt; by Dan Matthews.&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Note you can access user profile information using the user profile service. Here’s a &lt;a href="http://blogs.msdn.com/infopath/archive/2007/03/07/get-the-user-profile-through-moss-web-services.aspx" target="_blank"&gt;nice post&lt;/a&gt; (InfoPath team blog) demostrating the use with &lt;strong&gt;InfoPath&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;What’s next?&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;The sky’s the limit… just kidding… 
  &lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Here’s a sample method I came up with demonstrating a sample use for user profiles:&lt;/p&gt;

&lt;p&gt;&lt;span style="color:gray;"&gt;/// &amp;lt;summary&amp;gt; 
    &lt;br /&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;Looks for an anniversary, meaning any date in the user&amp;#39;s profile matching today&amp;#39;s month and day 
    &lt;br /&gt;&lt;/span&gt;&lt;span style="color:gray;"&gt;/// &amp;lt;/summary&amp;gt; 
    &lt;br /&gt;/// &amp;lt;param name=&amp;quot;profile&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:green;"&gt;The user profile to check&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/param&amp;gt; 
    &lt;br /&gt;/// &amp;lt;returns&amp;gt;&lt;/span&gt;&lt;span style="color:green;"&gt;true if found, false if not&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/returns&amp;gt; 
    &lt;br /&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;public bool &lt;/span&gt;DoesTheUserHaveAnythingToday(&lt;span style="color:#2b91af;"&gt;UserProfile &lt;/span&gt;profile) 

  &lt;br /&gt;{ 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;bool &lt;/span&gt;result = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:green;"&gt;// assume the user has nothing today 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; // get the profile manager 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;UserProfileManager &lt;/span&gt;userProfilem = profile.ProfileManager; 

  &lt;br /&gt;

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:green;"&gt;// go over all the properties looking for dates 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;foreach &lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;Property &lt;/span&gt;prop &lt;span style="color:blue;"&gt;in &lt;/span&gt;userProfilem.Properties) 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; { 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:green;"&gt;// is it possbible for a prop to be null? 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;if &lt;/span&gt;(prop != &lt;span style="color:blue;"&gt;null&lt;/span&gt;) 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;try 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{ 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;if &lt;/span&gt;(prop.Type == &lt;span style="color:#a31515;"&gt;&amp;quot;datetime&amp;quot; &lt;/span&gt;|| prop.Type == &lt;span style="color:#a31515;"&gt;&amp;quot;datenoyear&amp;quot; &lt;/span&gt;|| prop.Type == &lt;span style="color:#a31515;"&gt;&amp;quot;date&amp;quot;&lt;/span&gt;) 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;DateTime &lt;/span&gt;date = (&lt;span style="color:#2b91af;"&gt;DateTime&lt;/span&gt;)profile[prop.Name].Value; 

  &lt;br /&gt;

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:green;"&gt;// check if the day and month match today 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;if &lt;/span&gt;(date.Month == &lt;span style="color:#2b91af;"&gt;DateTime&lt;/span&gt;.Today.Month &amp;amp;&amp;amp; date.Day == &lt;span style="color:#2b91af;"&gt;DateTime&lt;/span&gt;.Today.Day) 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:green;"&gt;// found a date so stop looking 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;result == &lt;span style="color:blue;"&gt;true&lt;/span&gt;; 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;break&lt;/span&gt;; 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;else 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{ 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:green;"&gt;// this property is not a date value 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;catch 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{ 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:green;"&gt;// nothing to do... move on to the next property 
    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } 

  &lt;br /&gt;

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return &lt;/span&gt;result; 

  &lt;br /&gt;}&lt;/p&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Disclaimer: I didn’t run this code so… :)&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=127818" width="1" height="1"&gt;</content><author><name>justguy</name><uri>http://blogs.microsoft.co.il/members/justguy.aspx</uri></author></entry><entry><title>FBA in SharePoint – Everything you’ve ever wanted to do</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/justguy/archive/2008/07/15/fba-in-sharepoint-everything-you-ve-ever-wanted-to-do.aspx" /><id>http://blogs.microsoft.co.il/blogs/justguy/archive/2008/07/15/fba-in-sharepoint-everything-you-ve-ever-wanted-to-do.aspx</id><published>2008-07-15T08:11:33Z</published><updated>2008-07-15T08:11:33Z</updated><content type="html">&lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Hi,&lt;/p&gt;  &lt;p&gt;Recently I’ve had an interesting challenge (yes, challenge): building a MOSS portal based on Form Authentication.    &lt;br /&gt;I call it a challenge, because it was quite difficult to accomplish. One of the reasons was lack of documantation.     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;The solution… :)&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Chapter 1 – Why FBA??&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If sounds funny when you say if ignoring the dots that should be place between the letters. I know!&lt;/p&gt;  &lt;p&gt;Anyway, FBA is another means of authentication. The most common is &lt;a href="http://en.wikipedia.org/wiki/Active_Directory" target="_blank"&gt;Active Directory&lt;/a&gt;&lt;strong&gt;&lt;/strong&gt; (&lt;a href="http://en.wikipedia.org/wiki/Windows_authentication" target="_blank"&gt;Windows authentication&lt;/a&gt;&lt;strong&gt;&lt;/strong&gt;). SharePoint requires a domain for the installation and management. The authentication is accomplished by querying a &lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Domain_controller" target="_blank"&gt;domain controlller&lt;/a&gt;&lt;/strong&gt; (DC) in the &lt;a href="http://en.wikipedia.org/wiki/Windows_Server_domain" target="_blank"&gt;&lt;strong&gt;domain&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Another method is &lt;a href="http://www.passport.com/" target="_blank"&gt;Passport&lt;/a&gt;. Read about it on your own free time.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;F&lt;/strong&gt;orm &lt;strong&gt;B&lt;/strong&gt;ased &lt;strong&gt;A&lt;/strong&gt;uthentication means the &lt;strong&gt;authentication is done query a database &lt;/strong&gt;(or text files or wherever). The user can create the form the user uses to enter the credentials.     &lt;br /&gt;Have a look at this &lt;a href="http://msdn.microsoft.com/en-us/library/xdt4thhy.aspx" target="_blank"&gt;simple example in MSDN&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;This method enables you to create your own authentication method, create your own login page, or set up a simple login control on the home page of your site. You could also add cookie support for automatic authentication (i.e., “&lt;em&gt;Remember me&lt;/em&gt;”).     &lt;br /&gt;You could use &lt;a href="http://msdn.microsoft.com/en-us/library/aa480476.aspx" target="_blank"&gt;ASP.NET’s authentication&lt;/a&gt;. That’s what SharePoint does, so we don’t have a lot of choices here.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Chapter 2 – What do we need?&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;I’ll address the issue regarding MOSS installations. WSS is not as problematic.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Install MOSS :P &lt;/li&gt;    &lt;li&gt;Go to Google and run a search for &lt;em&gt;&lt;strong&gt;FBA SharePoint&lt;/strong&gt;&lt;/em&gt;.       &lt;br /&gt;You’ll find several posts, like:       &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://www.andrewconnell.com/blog/articles/HowToConfigPublishingSiteWithDualAuthProvidersAndAnonAccess.aspx" target="_blank"&gt;Configuring a Office SharePoint Server 2007 Publishing Site with Dual Authentication Providers and Anonymous Access&lt;/a&gt; (Andrew Connell)       &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://www.devcow.com/blogs/jdattis/archive/2007/02/23/Office-SharePoint-Server-2007-Forms-Based-Authentication-FBA-Walkthrough-Part-1.aspx" target="_blank"&gt;Office SharePoint Server 2007 - Forms Based Authentication (FBA) Walk-through - Part 1&lt;/a&gt; (Dan Attis)       &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://www.codeplex.com/fba" target="_blank"&gt;Forms Base Authentication Tools and Utils for SharePoint 2007&lt;/a&gt; (CodePlex) – this is a full FBA management solution for SharePoint.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;If you’re going to use user profiles with the FBA site, you’ll have to extend the &lt;strong&gt;&lt;a href="http://blogs.msdn.com/joelo/archive/2006/10/03/Shared-Service-Providers-_2800_SSPs_2900_-What-Are-They_2E002E002E00_-How-to_2700_s-On-Delegation.aspx" target="_blank"&gt;Shared Services Provider&lt;/a&gt;&lt;/strong&gt; (SSP) to work with the FBA provider.       &lt;br /&gt;Check out Dan Attis’ post: &lt;a href="http://www.devcow.com/blogs/jdattis/archive/2007/03/01/Office-SharePoint-Server-2007-Forms-Based-Authentication-FBA-w-MySites-Walkthrough-Part-2.aspx" target="_blank"&gt;Office SharePoint Server 2007 - Forms Based Authentication (FBA) w/MySites Walk-through - Part 2&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This is it for now.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Futuristic posts (when I find some free time)::&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&lt;u&gt;Chapter 3 – UserProfileManager and FBA (provider issues)&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;u&gt;Chapter 4 – Anonymous access to FBA sites&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=118007" width="1" height="1"&gt;</content><author><name>justguy</name><uri>http://blogs.microsoft.co.il/members/justguy.aspx</uri></author></entry><entry><title>Combining a WCF Service with a Web Service (or SharePoint Designer doesn't work with WCF)</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/justguy/archive/2008/05/11/combining-wcf-service-with-a-web-service-or-sharepoint-designer-doesn-t-work-with-wcf.aspx" /><id>http://blogs.microsoft.co.il/blogs/justguy/archive/2008/05/11/combining-wcf-service-with-a-web-service-or-sharepoint-designer-doesn-t-work-with-wcf.aspx</id><published>2008-05-11T13:17:00Z</published><updated>2008-05-11T13:17:00Z</updated><content type="html">&lt;p&gt;Recently I&amp;#39;ve started working with WCF services for all the&amp;nbsp;right reasons.&lt;br /&gt;I noticed SharePoint Designer cannot consume WCF services. I&amp;#39;m guessing it has something to do with SOAP versions.&lt;/p&gt;
&lt;p&gt;After a short investigation I came up with a hybrid: a service you can use as a WCF Service and a Web Service (.asmx and .svc).&lt;br /&gt;I have suggested this solution to Microsoft Gold Support and got a &amp;quot;OK. We&amp;#39;ll look into this.&amp;quot;&lt;/p&gt;
&lt;p&gt;How do we do it?&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div&gt;Create/Find a WCF Service.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Create a new Web Service.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Copy the Web Wervice&amp;#39;s we.config into the WCF&amp;#39;s web.config (not app.config).&lt;br /&gt;Make sure you don&amp;#39;t lose the WCF tag (under configuration):&lt;br /&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;system.serviceModel&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;br /&gt;...&lt;br /&gt;&amp;lt;/&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;system.serviceModel&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#000000"&gt;Copy the &lt;strong&gt;.asmx&lt;/strong&gt; from the Web Service to the WCF&amp;nbsp;project and modify it accordingly:&lt;br /&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#000000"&gt;&lt;font size="2"&gt;
&lt;p&gt;&amp;lt;%&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;@&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;WebService&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&lt;font color="#ff0000" size="2"&gt;Language&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;C#&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;strong&gt;&lt;font color="#ff0000" size="2"&gt;&lt;font color="#ff0000" size="2"&gt;CodeBehind&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;Service1.cs&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&lt;font color="#ff0000" size="2"&gt;Class&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;WCFService1.Service1&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;font size="2"&gt; %&amp;gt;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#000000"&gt;&lt;font size="2"&gt;If you don&amp;#39;t already have one, create a &lt;strong&gt;.svc&lt;/strong&gt; file for the WCF Service:&lt;br /&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;pre&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;
&lt;p&gt;&amp;lt;%&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;@&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;ServiceHost&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&lt;font color="#ff0000" size="2"&gt;Service&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;WCFExample.Service1&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; %&amp;gt;&lt;/p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#000000"&gt;&lt;font size="2"&gt;&lt;pre&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;The service class has to inherit WebService and implement the service interface:&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;public&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;class&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;Service1&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; : System.Web.Services.&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;WebService&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;IService1&lt;/p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#000000"&gt;&lt;font size="2"&gt;&lt;pre&gt;Add the [&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;WebMethod&lt;/font&gt;] attribute (reference System.Web.Services) to the functions you want to expose using the Web Service.&lt;/pre&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#000000"&gt;&lt;font size="2"&gt;&lt;pre&gt;Host the entire thing in the IIS.&lt;/pre&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#000000"&gt;&lt;font size="2"&gt;&lt;pre&gt;Cross your fingers...&lt;br /&gt;To access the web serivce, use the .asmx, and for the WCF, use the .svc.&lt;/pre&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#000000"&gt;&lt;font size="2"&gt;&lt;pre&gt;Good luck!&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;Edit: Found this article in MSDN: &lt;a class="" title="How to: Migrate ASP.NET Web Service Code to the Windows Communication Foundation" href="http://msdn.microsoft.com/en-us/library/aa738697.aspx" target="_blank"&gt;How to: Migrate ASP.NET Web Service Code to the Windows Communication Foundation&lt;/a&gt;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;P.S. Sorry for the small fonts at the end of the post. I cannot install Live Write, and HTML &amp;lt;font&amp;gt; tags bug me.&lt;/pre&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=87880" width="1" height="1"&gt;</content><author><name>justguy</name><uri>http://blogs.microsoft.co.il/members/justguy.aspx</uri></author></entry><entry><title>My first post (2nd try)</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/justguy/archive/2008/05/05/my-first-post-2nd-try.aspx" /><id>http://blogs.microsoft.co.il/blogs/justguy/archive/2008/05/05/my-first-post-2nd-try.aspx</id><published>2008-05-05T05:09:00Z</published><updated>2008-05-05T05:09:00Z</updated><content type="html">&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;I&amp;#39;ve been told a blog is &lt;strong&gt;the&lt;/strong&gt; thing. So here it is.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;My name is&amp;nbsp;Adi Levinshtein, and I&amp;#39;ve been working in the IT industry for the past 4.5 years.&lt;br /&gt;During the past 2.5 years I&amp;#39;ve been working with ASP.NET and specializing in Microsoft SharePoint.&lt;br /&gt;Currently I&amp;#39;m a team leader and a consultant working for Bynet Software.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ll try to keep things interesting, so nothing about my cat... :P&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Cheers!&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=85542" width="1" height="1"&gt;</content><author><name>justguy</name><uri>http://blogs.microsoft.co.il/members/justguy.aspx</uri></author></entry></feed>
