<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Eclipsed4utoo&#039;s Blog&#187; wpf</title>
	<atom:link href="http://eclipsed4utoo.com/blog/tag/wpf/feed/" rel="self" type="application/rss+xml" />
	<link>http://eclipsed4utoo.com/blog</link>
	<description>Not Your Ordinary Programmer</description>
	<lastBuildDate>Thu, 08 Sep 2011 17:09:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>WPF &#8211; Using Data Triggers</title>
		<link>http://eclipsed4utoo.com/blog/wpf-data-triggers/</link>
		<comments>http://eclipsed4utoo.com/blog/wpf-data-triggers/#comments</comments>
		<pubDate>Mon, 07 Mar 2011 23:30:07 +0000</pubDate>
		<dc:creator>Ryan Alford</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[wpf]]></category>

		<guid isPermaLink="false">http://eclipsed4utoo.com/blog/?p=633</guid>
		<description><![CDATA[Data triggers are a great feature of WPF. They allow you to change the style properties of a control depending on the data of the bound items of that control.In this tutorial, I am going to bind a set of data to a ListBox, and use Data Triggers to let me know when something is [...]]]></description>
			<content:encoded><![CDATA[<p>Data triggers are a great feature of WPF. They allow you to change the style properties of a control depending on the data of the bound items of that control.<br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" />In this tutorial, I am going to bind a set of data to a <strong>ListBox</strong>, and use Data Triggers to let me know when something is wrong.<br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" />So first, I am going to create a <strong>Person </strong>class. This class will have three public properties: <strong>Name</strong>, <strong>Age</strong>, and <strong>IsValid</strong>. All three properties will be readonly. The <strong>IsValid </strong>property will return whether the data of the class is good or not.</p>
<p><strong>Person.cs</strong></p>
<pre class="brush: csharp;">public class Person
{
    private string name;

    public string Name
    {
        get { return name; }
        private set { name = value; }
    }
    private int age;

    public int Age
    {
        get { return age; }
        private set { age = value; }
    }

    public bool IsValid
    {
        // will return false if either the name is blank
        //   or if the age is 0.
        get { return (!string.IsNullOrEmpty(name) &amp;&amp; age != 0); }
    }

    public Person(string _name, int _age)
    {
        name = _name;
        age = _age;
    }
}</pre>
<p>This is a simple example to show the concept. Basically, I am going to set the data to values that we don&#8217;t want.</p>
<p><strong><br />
MainWindow.xaml.cs</strong></p>
<pre class="brush: csharp;">
public partial class MainWindow : Window
{
    ObservableCollection&lt;Person&gt; col;

    public MainWindow()
    {
        InitializeComponent();

        this.Loaded += new RoutedEventHandler(MainWindow_Loaded);
    }

    void MainWindow_Loaded(object sender, RoutedEventArgs e)
    {
        col = new ObservableCollection&lt;Person&gt;();
        col.Add(new Person(&quot;John Doe&quot;, 24));
        col.Add(new Person(&quot;&quot;, 24));
        col.Add(new Person(&quot;John Doe&quot;, 0));

        PersonListBox.ItemsSource = col;
    }
}</pre>
<p>As you can see, I set the name to being blank for one object, and the age to being 0 for another object.<br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" />Now for the XAML. First, we need to add a new style to the <strong>Window.Resources</strong>. This style will target the <strong>ListBoxItem </strong>type.</p>
<pre class="brush: csharp;">&lt;Window.Resources&gt;
    &lt;Style TargetType=&quot;{x:Type ListBoxItem}&quot; x:Key=&quot;ItemStyle&quot;&gt;
        &lt;Style.Triggers&gt;
            &lt;DataTrigger Binding=&quot;{Binding IsValid}&quot; Value=&quot;false&quot;&gt;
                &lt;Setter Property=&quot;Background&quot; Value=&quot;Red&quot; /&gt;
            &lt;/DataTrigger&gt;
        &lt;/Style.Triggers&gt;
    &lt;/Style&gt;
&lt;/Window.Resources&gt;</pre>
<p>So if our <strong>IsValid </strong>property is false, then we will set the <strong>Background </strong>property of the <strong>ListBoxItem </strong>to Red.</p>
<p>Then we have our <strong>ListBox</strong>,</p>
<pre class="brush: csharp;">
&lt;Grid&gt;
   &lt;ListBox
       Name=&quot;PersonListBox&quot;
       ItemsSource=&quot;{Binding}&quot;
       ItemContainerStyle=&quot;{StaticResource ItemStyle}&quot;
       Height=&quot;142&quot;
       HorizontalAlignment=&quot;Left&quot;
       Margin=&quot;39,30,0,0&quot;
       VerticalAlignment=&quot;Top&quot;
       Width=&quot;190&quot;&gt;

       &lt;ListBox.ItemTemplate&gt;

          &lt;DataTemplate&gt;

             &lt;StackPanel Orientation=&quot;Vertical&quot;&gt;

                 &lt;StackPanel Orientation=&quot;Horizontal&quot;&gt;

                    &lt;TextBlock
                        Text=&quot;Name:&quot;
                        Width=&quot;50&quot; /&gt;

                    &lt;TextBlock
                        Text=&quot;{Binding Name}&quot;
                        Width=&quot;150&quot;  /&gt;

                 &lt;/StackPanel&gt;

                 &lt;StackPanel Orientation=&quot;Horizontal&quot;&gt;

                    &lt;TextBlock
                       Text=&quot;Age:&quot;
                       Width=&quot;50&quot; /&gt;

                    &lt;TextBlock
                       Text=&quot;{Binding Age}&quot;
                       Width=&quot;50&quot;  /&gt;

                 &lt;/StackPanel&gt;

             &lt;/StackPanel&gt;

         &lt;/DataTemplate&gt;

     &lt;/ListBox.ItemTemplate&gt;

   &lt;/ListBox&gt;
&lt;/Grid&gt;
</pre>
<p>So I am binding the <strong>ItemsSource </strong>to the collection in the code-behind. Also notice that I am binding the style we created to the <strong>ItemContainerStyle</strong>. The <strong>DataTemplate </strong>simply creates a custom ItemTemplate to show the data.</p>
<p>So now if we run our code, we get this&#8230;</p>
<p><img class="alignnone size-full wp-image-652" title="1" src="http://eclipsed4utoo.com/blog/wp-content/uploads/2011/03/1.png" alt="1" width="518" height="346" /></p>
<p>But that&#8217;s not all. Let&#8217;s say that we want to highlight the rows in different colors depending on if the name is blank or if the age is 0. We can create two separate triggers for that. We would simply change our style to this&#8230;</p>
<pre class="brush: csharp;">
&lt;Window.Resources&gt;
   &lt;Style TargetType=&quot;{x:Type ListBoxItem}&quot; x:Key=&quot;ItemStyle&quot;&gt;
       &lt;Style.Triggers&gt;
          &lt;DataTrigger Binding=&quot;{Binding Name}&quot; Value=&quot;&quot;&gt;
               &lt;Setter Property=&quot;Background&quot; Value=&quot;Blue&quot; /&gt;
          &lt;/DataTrigger&gt;
          &lt;DataTrigger Binding=&quot;{Binding Age}&quot; Value=&quot;0&quot;&gt;
               &lt;Setter Property=&quot;Background&quot; Value=&quot;Yellow&quot; /&gt;
          &lt;/DataTrigger&gt;
       &lt;/Style.Triggers&gt;
   &lt;/Style&gt;
&lt;/Window.Resources&gt;
</pre>
<p>With that change, our ListBox now shows this&#8230;</p>
<p><img class="alignnone size-full wp-image-653" title="2" src="http://eclipsed4utoo.com/blog/wp-content/uploads/2011/03/2.png" alt="2" width="517" height="347" /></p>
<p>As you can see, Data Triggers are a very powerful part of WPF. Now if only Microsoft would add this to Silverlight.</p>
]]></content:encoded>
			<wfw:commentRss>http://eclipsed4utoo.com/blog/wpf-data-triggers/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Silverlight &#8211; Custom ListBox Item Template</title>
		<link>http://eclipsed4utoo.com/blog/silverlightwpf-custom-listbox-item-template/</link>
		<comments>http://eclipsed4utoo.com/blog/silverlightwpf-custom-listbox-item-template/#comments</comments>
		<pubDate>Mon, 25 Oct 2010 22:30:40 +0000</pubDate>
		<dc:creator>Ryan Alford</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[blend 4]]></category>
		<category><![CDATA[expression]]></category>
		<category><![CDATA[wpf]]></category>

		<guid isPermaLink="false">http://eclipsed4utoo.com/blog/?p=475</guid>
		<description><![CDATA[In this tutorial, I will show how to create a custom ListBox Item Template. For anybody who has tried doing a custom Item Template in WinForms, you would know that it is not fun. You have to override Draw/Paint events, and other jazz to get a ListBox to show how you want it to. However, [...]]]></description>
			<content:encoded><![CDATA[<p>In this tutorial, I will show how to create a custom ListBox Item Template.</p>
<p>For anybody who has tried doing a custom Item Template in WinForms, you would know that it is not fun. You have to override Draw/Paint events, and other jazz to get a ListBox to show how you want it to. However, in Silverlight/WPF, this process is so much easier.</p>
<p>I will be using Blend 4 in my example, as Blend makes the process even more easier.</p>
<p>So first we are going to create a Silverlight project. I will name it <strong>CustomListBoxItemTemplate</strong>.</p>
<p><img class="alignnone size-full wp-image-485" title="10-24-2010 8-46-18 AM" src="http://eclipsed4utoo.com/blog/wp-content/uploads/2010/10/10-24-2010-8-46-18-AM.png" alt="10-24-2010 8-46-18 AM" width="550" height="505" /></p>
<p>Next, we are going to add a ListBox to our page. I made mine with a <strong>Height </strong>of <strong>250</strong>, and a <strong>Width </strong>of <strong>300</strong>, and gave it the name <strong>lstPeople</strong>.</p>
<pre class="brush: csharp;">
&lt;ListBox
   x:Name=&quot;lstPeople&quot;
   ItemsSource=&quot;{Binding}&quot;
   DisplayMemberPath=&quot;FullName&quot;
   Margin=&quot;145,92,195,138&quot;/&gt;
</pre>
<p>Before we get to styling the ListBox, we need to create some test data to load into our ListBox. I created a simply Person class.</p>
<pre class="brush: csharp;">
public class Person
{
    // Insert code required on object creation below this point.
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }
    public string FullName { get { return FirstName + &quot; &quot; + LastName; } }

    public Person(string _fName, string _lName, int _age)
    {
        FirstName = _fName;
        LastName = _lName;
        Age = _age;
    }
}
</pre>
<p>And add it to the ListBox&#8230;</p>
<pre class="brush: csharp;">
public partial class MainPage : UserControl
{
	public MainPage()
	{
	     // Required to initialize variables
	     InitializeComponent();

             ObservableCollection&lt;Person&gt; peopleList = new ObservableCollection&lt;Person&gt;();
             peopleList.Add(new Person(&quot;John&quot;, &quot;Doe&quot;, 32));
             peopleList.Add(new Person(&quot;Jane&quot;, &quot;Doe&quot;, 20));
             peopleList.Add(new Person(&quot;Betty&quot;, &quot;Sue&quot;, 65));

             lstPeople.ItemsSource = peopleList;
	}
}
</pre>
<p>So now, our <strong>ListBox </strong>looks like this&#8230;</p>
<p><img class="alignnone size-full wp-image-486" title="10-24-2010 9-12-12 AM" src="http://eclipsed4utoo.com/blog/wp-content/uploads/2010/10/10-24-2010-9-12-12-AM.png" alt="10-24-2010 9-12-12 AM" width="349" height="296" /></p>
<p>Let&#8217;s say that we want to display the age below the Full Name. We can use Blend to edit the Item Template of the <strong>ListBox</strong>.</p>
<p>In the Objects And Timeline window, <strong>right-click</strong> on the <strong>ListBox </strong>&#8211;&gt; <strong>Edit Additional Templates</strong> &#8211;&gt; <strong>Edit Generated Items(ItemTemplate)</strong> &#8211;&gt; <strong>Create Empty</strong>. You could also use the <strong>&#8220;Edit A Copy&#8221;</strong> if it&#8217;s available.</p>
<p><img class="alignnone size-full wp-image-487" title="10-24-2010 9-16-07 AM" src="http://eclipsed4utoo.com/blog/wp-content/uploads/2010/10/10-24-2010-9-16-07-AM.png" alt="10-24-2010 9-16-07 AM" width="694" height="413" /></p>
<p>We will name it <strong>MyListBoxItemTemplate</strong>.</p>
<p><img class="alignnone size-full wp-image-488" title="10-24-2010 9-16-54 AM" src="http://eclipsed4utoo.com/blog/wp-content/uploads/2010/10/10-24-2010-9-16-54-AM.png" alt="10-24-2010 9-16-54 AM" width="458" height="248" /></p>
<p>If you switch over to the XAML view, you will see that the <strong>ItemTemplate </strong>of the <strong>ListBox </strong>has now been binded to a <strong>Static Resource</strong>. Right above the <strong>LayoutRoot </strong>in the <strong>UserControl.Resources</strong>, you should a <strong>DataTemplate</strong>.</p>
<p>You will now see a small <strong>Grid </strong>on the screen. We will expand the grid to a <strong>Height </strong>of <strong>55 </strong>and a <strong>Width </strong>of <strong>225</strong>. Inside the grid, we are going to add 4 <strong>TextBlocks</strong>. Two will be for display purposes and the other two will show our information. Notice I am also Binding the <strong>FullName </strong>and <strong>Age </strong>properties to the <strong>Text </strong>property of the <strong>TextBlock</strong>.</p>
<pre class="brush: csharp;">&lt;Grid Width=&quot;225&quot; Height=&quot;55&quot;&gt;

	&lt;TextBlock
		Text=&quot;Full Name:&quot;
		HorizontalAlignment=&quot;Left&quot;
		Height=&quot;15&quot;
		Margin=&quot;12,8,0,0&quot;
		TextWrapping=&quot;Wrap&quot;
		VerticalAlignment=&quot;Top&quot;
		Width=&quot;70&quot;/&gt;

	&lt;TextBlock
		Text=&quot;Age:&quot;
		HorizontalAlignment=&quot;Left&quot;
		Margin=&quot;46,27,0,13&quot;
		TextWrapping=&quot;Wrap&quot;
		Width=&quot;33&quot;/&gt;

	&lt;TextBlock
		x:Name=&quot;FullNameTextBlock&quot;
		Text=&quot;{Binding FullName}&quot;
		Height=&quot;15&quot;
		Margin=&quot;86,8,8,0&quot;
		TextWrapping=&quot;Wrap&quot;
		VerticalAlignment=&quot;Top&quot; /&gt;

	&lt;TextBlock
		x:Name=&quot;AgeTextBlock&quot;
		Text=&quot;{Binding Age}&quot;
		Margin=&quot;86,27,92,13&quot;
		TextWrapping=&quot;Wrap&quot; /&gt;

&lt;/Grid&gt;</pre>
<p>And that&#8217;s all we need to do. To get out of the ItemTemplate editing, click on the ListBox at the top&#8230;</p>
<p><img class="alignnone size-full wp-image-489" title="10-24-2010 9-32-30 AM" src="http://eclipsed4utoo.com/blog/wp-content/uploads/2010/10/10-24-2010-9-32-30-AM.png" alt="10-24-2010 9-32-30 AM" width="637" height="241" /></p>
<p>Now run the application, and your ListBox will now look like this&#8230;</p>
<p><img class="alignnone size-full wp-image-490" title="10-24-2010 9-32-45 AM" src="http://eclipsed4utoo.com/blog/wp-content/uploads/2010/10/10-24-2010-9-32-45-AM.png" alt="10-24-2010 9-32-45 AM" width="377" height="316" /></p>
<p>As you can see, using Blend in a Silverlight or WPF application, you can customize a ListBox in only a few minutes.</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&lt;ListBox</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>x:Name=&#8221;lstPeople&#8221;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>ItemsSource=&#8221;{Binding}&#8221;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>DisplayMemberPath=&#8221;FullName&#8221;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span>Margin=&#8221;145,92,195,138&#8243;/&gt;</div>
]]></content:encoded>
			<wfw:commentRss>http://eclipsed4utoo.com/blog/silverlightwpf-custom-listbox-item-template/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>WPF &#8211; Dynamically Loading LINQ-To-SQL Tables and Columns Into ComboBox</title>
		<link>http://eclipsed4utoo.com/blog/wpf-loading-linqtosql-tables-columns-combobox/</link>
		<comments>http://eclipsed4utoo.com/blog/wpf-loading-linqtosql-tables-columns-combobox/#comments</comments>
		<pubDate>Tue, 25 May 2010 22:00:21 +0000</pubDate>
		<dc:creator>Ryan Alford</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[LINQ-To-SQL]]></category>
		<category><![CDATA[wpf]]></category>

		<guid isPermaLink="false">http://eclipsed4utoo.com/blog/?p=338</guid>
		<description><![CDATA[Here is some code to dynamically load the table names into a ComboBox.  Then on the selection of a specific table, load the columns for that table into a second ComboBox. First is the XAML: &#60;Window x:Class="WpfApplication4.MainWindow"        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"        Title="MainWindow" Height="350" Width="525"&#62;    &#60;Grid&#62;      [...]]]></description>
			<content:encoded><![CDATA[<p>Here is some code to dynamically load the table names into a ComboBox.  Then on the selection of a specific table, load the columns for that table into a second ComboBox.</p>
<p>First is the XAML:</p>
<pre style="font-size: 14px !important; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; font-family: monospace !important; overflow-x: scroll; overflow-y: scroll; max-height: 500px; width: 450px; display: block; background-position: initial initial; background-repeat: initial initial; padding: 12px; margin: 0px; border: 1px dotted #000000;"><span style="color: #000088; padding: 0px; margin: 0px;">&lt;Window</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #660066; padding: 0px; margin: 0px;">x:Class</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"WpfApplication4.MainWindow"</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />        </span><span style="color: #660066; padding: 0px; margin: 0px;">xmlns</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"http://schemas.microsoft.com/winfx/2006/xaml/presentation"</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />        </span><span style="color: #660066; padding: 0px; margin: 0px;">xmlns:x</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"http://schemas.microsoft.com/winfx/2006/xaml"</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />        </span><span style="color: #660066; padding: 0px; margin: 0px;">Title</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"MainWindow"</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #660066; padding: 0px; margin: 0px;">Height</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"350"</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #660066; padding: 0px; margin: 0px;">Width</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"525"</span><span style="color: #000088; padding: 0px; margin: 0px;">&gt;</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />    </span><span style="color: #000088; padding: 0px; margin: 0px;">&lt;Grid&gt;</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />        </span><span style="color: #000088; padding: 0px; margin: 0px;">&lt;ComboBox</span><span style="color: #000000; padding: 0px; margin: 0px;"> <br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">Name</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"cboTables"</span><span style="color: #000000; padding: 0px; margin: 0px;"> <br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">Height</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"23"</span><span style="color: #000000; padding: 0px; margin: 0px;"> <br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">HorizontalAlignment</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"Left"</span><span style="color: #000000; padding: 0px; margin: 0px;"> <br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">Margin</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"186,60,0,0"</span><span style="color: #000000; padding: 0px; margin: 0px;"> <br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">VerticalAlignment</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"Top"</span><span style="color: #000000; padding: 0px; margin: 0px;"> <br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">Width</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"120"</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">ItemsSource</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"{Binding}"</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">Selectionchanged</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"cboTables_Selectionchanged"</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">DisplayMemberPath</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"RowType.Name"</span><span style="color: #000000; padding: 0px; margin: 0px;"> <br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">SelectedValuePath</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"RowType.DataMembers"</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #000088; padding: 0px; margin: 0px;">/&gt;</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />        <br style="padding: 0px; margin: 0px;" />        </span><span style="color: #000088; padding: 0px; margin: 0px;">&lt;ComboBox</span><span style="color: #000000; padding: 0px; margin: 0px;"> <br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">Height</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"23"</span><span style="color: #000000; padding: 0px; margin: 0px;"> <br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">HorizontalAlignment</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"Left"</span><span style="color: #000000; padding: 0px; margin: 0px;"> <br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">Margin</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"186,107,0,0"</span><span style="color: #000000; padding: 0px; margin: 0px;"> <br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">Name</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"cboColumns"</span><span style="color: #000000; padding: 0px; margin: 0px;"> <br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">VerticalAlignment</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"Top"</span><span style="color: #000000; padding: 0px; margin: 0px;"> <br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">Width</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"120"</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">ItemsSource</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"{Binding}"</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">DisplayMemberPath</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"MappedName"</span><span style="color: #000088; padding: 0px; margin: 0px;">/&gt;</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />        </span><span style="color: #000088; padding: 0px; margin: 0px;">&lt;Label</span><span style="color: #000000; padding: 0px; margin: 0px;"> <br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">Name</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"label1"</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">Content</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"Tables:"</span><span style="color: #000000; padding: 0px; margin: 0px;"> <br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">Height</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"28"</span><span style="color: #000000; padding: 0px; margin: 0px;"> <br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">HorizontalAlignment</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"Left"</span><span style="color: #000000; padding: 0px; margin: 0px;"> <br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">Margin</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"134,60,0,0"</span><span style="color: #000000; padding: 0px; margin: 0px;">  <br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">VerticalAlignment</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"Top"</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #000088; padding: 0px; margin: 0px;">/&gt;</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" />        </span><span style="color: #000088; padding: 0px; margin: 0px;">&lt;Label</span><span style="color: #000000; padding: 0px; margin: 0px;"> <br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">Name</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"label2"</span><span style="color: #000000; padding: 0px; margin: 0px;"> <br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">Content</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"Columns:"</span><span style="color: #000000; padding: 0px; margin: 0px;"> <br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">Height</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"28"</span><span style="color: #000000; padding: 0px; margin: 0px;"> <br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">HorizontalAlignment</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"Left"</span><span style="color: #000000; padding: 0px; margin: 0px;"> <br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">Margin</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"121,107,0,0"</span><span style="color: #000000; padding: 0px; margin: 0px;"> <br style="padding: 0px; margin: 0px;" />            </span><span style="color: #660066; padding: 0px; margin: 0px;">VerticalAlignment</span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #008800; padding: 0px; margin: 0px;">"Top"</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #000088; padding: 0px; margin: 0px;">/&gt;</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />    </span><span style="color: #000088; padding: 0px; margin: 0px;">&lt;/Grid&gt;</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" /></span><span style="color: #000088; padding: 0px; margin: 0px;">&lt;/Window&gt;</span></pre>
<p>Notice that we have set the <span style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; color: #000000; font-family: monospace !important; background-position: initial initial; background-repeat: initial initial; padding: 2px; margin: 0px; border: 1px dotted #000000;">ItemsSource</span> attribute to <span style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; color: #000000; font-family: monospace !important; background-position: initial initial; background-repeat: initial initial; padding: 2px; margin: 0px; border: 1px dotted #000000;">{Binding}</span>. This lets the control know that we are binding data to the control(big surprise). Notice that I have also set the<span style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; color: #000000; font-family: monospace !important; background-position: initial initial; background-repeat: initial initial; padding: 2px; margin: 0px; border: 1px dotted #000000;">DisplayMemberPath</span> and <span style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; color: #000000; font-family: monospace !important; background-position: initial initial; background-repeat: initial initial; padding: 2px; margin: 0px; border: 1px dotted #000000;">SelectedValuePath</span> in the Tables ComboBox and the<span style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; color: #000000; font-family: monospace !important; background-position: initial initial; background-repeat: initial initial; padding: 2px; margin: 0px; border: 1px dotted #000000;">DisplayMemberPath</span> in the Columns ComboBox.</p>
<p>Next is the code:</p>
<pre style="font-size: 14px !important; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; font-family: monospace !important; overflow-x: scroll; overflow-y: scroll; max-height: 500px; width: 450px; display: block; background-position: initial initial; background-repeat: initial initial; padding: 12px; margin: 0px; border: 1px dotted #000000;"><span style="color: #006699; font-weight: bold; padding: 0px; margin: 0px;">using</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #990099; padding: 0px; margin: 0px;">System</span><span style="color: #999900; padding: 0px; margin: 0px;">.</span><span style="color: #990099; padding: 0px; margin: 0px;">Collections</span><span style="color: #999900; padding: 0px; margin: 0px;">.</span><span style="color: #990099; padding: 0px; margin: 0px;">ObjectModel</span><span style="color: #999900; padding: 0px; margin: 0px;">;</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" /></span><span style="color: #006699; font-weight: bold; padding: 0px; margin: 0px;">using</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #990099; padding: 0px; margin: 0px;">System</span><span style="color: #999900; padding: 0px; margin: 0px;">.</span><span style="color: #990099; padding: 0px; margin: 0px;">Windows</span><span style="color: #999900; padding: 0px; margin: 0px;">;</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" /></span><span style="color: #006699; font-weight: bold; padding: 0px; margin: 0px;">using</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #990099; padding: 0px; margin: 0px;">System</span><span style="color: #999900; padding: 0px; margin: 0px;">.</span><span style="color: #990099; padding: 0px; margin: 0px;">Windows</span><span style="color: #999900; padding: 0px; margin: 0px;">.</span><span style="color: #990099; padding: 0px; margin: 0px;">Controls</span><span style="color: #999900; padding: 0px; margin: 0px;">;</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" /></span><span style="color: #006699; font-weight: bold; padding: 0px; margin: 0px;">namespace</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #990099; padding: 0px; margin: 0px;">WpfApplication4</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" /></span><span style="color: #999900; padding: 0px; margin: 0px;">{</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />    </span><span style="color: #008200; padding: 0px; margin: 0px;">/// &lt;summary&gt;</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />    </span><span style="color: #008200; padding: 0px; margin: 0px;">/// Interaction logic for Mainwindow.xaml</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />    </span><span style="color: #008200; padding: 0px; margin: 0px;">/// &lt;/summary&gt;</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />    </span><span style="color: #006699; font-weight: bold; padding: 0px; margin: 0px;">public</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #006699; font-weight: bold; padding: 0px; margin: 0px;">partial</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #006699; font-weight: bold; padding: 0px; margin: 0px;">class</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #990099; padding: 0px; margin: 0px;">MainWindow</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #999900; padding: 0px; margin: 0px;">:</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #990099; padding: 0px; margin: 0px;">Window</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />    </span><span style="color: #999900; padding: 0px; margin: 0px;">{</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />        </span><span style="color: #006699; font-weight: bold; padding: 0px; margin: 0px;">public</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #990099; padding: 0px; margin: 0px;">MainWindow</span><span style="color: #999900; padding: 0px; margin: 0px;">()</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />        </span><span style="color: #999900; padding: 0px; margin: 0px;">{</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />            </span><span style="color: #990099; padding: 0px; margin: 0px;">InitializeComponent</span><span style="color: #999900; padding: 0px; margin: 0px;">();</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" />            </span><span style="color: #006699; font-weight: bold; padding: 0px; margin: 0px;">this</span><span style="color: #999900; padding: 0px; margin: 0px;">.</span><span style="color: #990099; padding: 0px; margin: 0px;">Loaded</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #999900; padding: 0px; margin: 0px;">+=</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #006699; font-weight: bold; padding: 0px; margin: 0px;">new</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #990099; padding: 0px; margin: 0px;">RoutedEventHandler</span><span style="color: #999900; padding: 0px; margin: 0px;">(</span><span style="color: #990099; padding: 0px; margin: 0px;">MainWindow_Loaded</span><span style="color: #999900; padding: 0px; margin: 0px;">);</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />        </span><span style="color: #999900; padding: 0px; margin: 0px;">}</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" />        </span><span style="color: #006699; font-weight: bold; padding: 0px; margin: 0px;">void</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #990099; padding: 0px; margin: 0px;">MainWindow_Loaded</span><span style="color: #999900; padding: 0px; margin: 0px;">(</span><span style="color: #006699; font-weight: bold; padding: 0px; margin: 0px;">object</span><span style="color: #000000; padding: 0px; margin: 0px;"> sender</span><span style="color: #999900; padding: 0px; margin: 0px;">,</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #990099; padding: 0px; margin: 0px;">RoutedEventArgs</span><span style="color: #000000; padding: 0px; margin: 0px;"> e</span><span style="color: #999900; padding: 0px; margin: 0px;">)</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />        </span><span style="color: #999900; padding: 0px; margin: 0px;">{</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />            </span><span style="color: #008200; padding: 0px; margin: 0px;">// creates a new instance of our DataContext</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />            </span><span style="color: #006699; font-weight: bold; padding: 0px; margin: 0px;">using</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #999900; padding: 0px; margin: 0px;">(</span><span style="color: #990099; padding: 0px; margin: 0px;">InformationDataContext</span><span style="color: #000000; padding: 0px; margin: 0px;"> db </span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #006699; font-weight: bold; padding: 0px; margin: 0px;">new</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #990099; padding: 0px; margin: 0px;">InformationDataContext</span><span style="color: #999900; padding: 0px; margin: 0px;">())</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />            </span><span style="color: #999900; padding: 0px; margin: 0px;">{</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />                </span><span style="color: #008200; padding: 0px; margin: 0px;">// gets the list of tables</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />                </span><span style="color: #006699; font-weight: bold; padding: 0px; margin: 0px;">var</span><span style="color: #000000; padding: 0px; margin: 0px;"> tableList </span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #000000; padding: 0px; margin: 0px;"> db</span><span style="color: #999900; padding: 0px; margin: 0px;">.</span><span style="color: #990099; padding: 0px; margin: 0px;">Mapping</span><span style="color: #999900; padding: 0px; margin: 0px;">.</span><span style="color: #990099; padding: 0px; margin: 0px;">GetTables</span><span style="color: #999900; padding: 0px; margin: 0px;">();</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />                cboTables</span><span style="color: #999900; padding: 0px; margin: 0px;">.</span><span style="color: #990099; padding: 0px; margin: 0px;">ItemsSource</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #000000; padding: 0px; margin: 0px;"> tableList</span><span style="color: #999900; padding: 0px; margin: 0px;">;</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />            </span><span style="color: #999900; padding: 0px; margin: 0px;">}</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />        </span><span style="color: #999900; padding: 0px; margin: 0px;">}</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" />        </span><span style="color: #006699; font-weight: bold; padding: 0px; margin: 0px;">private</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #006699; font-weight: bold; padding: 0px; margin: 0px;">void</span><span style="color: #000000; padding: 0px; margin: 0px;"> cboTables_Selectionchanged</span><span style="color: #999900; padding: 0px; margin: 0px;">(</span><span style="color: #006699; font-weight: bold; padding: 0px; margin: 0px;">object</span><span style="color: #000000; padding: 0px; margin: 0px;"> sender</span><span style="color: #999900; padding: 0px; margin: 0px;">,</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #990099; padding: 0px; margin: 0px;">SelectionchangedEventArgs</span><span style="color: #000000; padding: 0px; margin: 0px;"> e</span><span style="color: #999900; padding: 0px; margin: 0px;">)</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />        </span><span style="color: #999900; padding: 0px; margin: 0px;">{</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />            cboColumns</span><span style="color: #999900; padding: 0px; margin: 0px;">.</span><span style="color: #990099; padding: 0px; margin: 0px;">ItemsSource</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #999900; padding: 0px; margin: 0px;">=</span><span style="color: #000000; padding: 0px; margin: 0px;"> cboTables</span><span style="color: #999900; padding: 0px; margin: 0px;">.</span><span style="color: #990099; padding: 0px; margin: 0px;">SelectedValue</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #006699; font-weight: bold; padding: 0px; margin: 0px;">as</span><span style="color: #000000; padding: 0px; margin: 0px;"> </span><span style="color: #990099; padding: 0px; margin: 0px;">ReadOnlyCollection</span><span style="color: #999900; padding: 0px; margin: 0px;">&lt;</span><span style="color: #990099; padding: 0px; margin: 0px;">System</span><span style="color: #999900; padding: 0px; margin: 0px;">.</span><span style="color: #990099; padding: 0px; margin: 0px;">Data</span><span style="color: #999900; padding: 0px; margin: 0px;">.</span><span style="color: #990099; padding: 0px; margin: 0px;">Linq</span><span style="color: #999900; padding: 0px; margin: 0px;">.</span><span style="color: #990099; padding: 0px; margin: 0px;">Mapping</span><span style="color: #999900; padding: 0px; margin: 0px;">.</span><span style="color: #990099; padding: 0px; margin: 0px;">MetaDataMember</span><span style="color: #999900; padding: 0px; margin: 0px;">&gt;;</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />        </span><span style="color: #999900; padding: 0px; margin: 0px;">}</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" />    </span><span style="color: #999900; padding: 0px; margin: 0px;">}</span><span style="color: #000000; padding: 0px; margin: 0px;"><br style="padding: 0px; margin: 0px;" /></span><span style="color: #999900; padding: 0px; margin: 0px;">}</span></pre>
<p>We use the <span style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; color: #000000; font-family: monospace !important; background-position: initial initial; background-repeat: initial initial; padding: 2px; margin: 0px; border: 1px dotted #000000;">GetTables</span> method of the DataContext class to get the list of tables. The objects themselves are of type <span style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; color: #000000; font-family: monospace !important; background-position: initial initial; background-repeat: initial initial; padding: 2px; margin: 0px; border: 1px dotted #000000;">System.Data.Linq.Mapping.AttributedMetaTable</span>. Two properties of this class are <span style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; color: #000000; font-family: monospace !important; background-position: initial initial; background-repeat: initial initial; padding: 2px; margin: 0px; border: 1px dotted #000000;">RowType.Name</span> and <span style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; color: #000000; font-family: monospace !important; background-position: initial initial; background-repeat: initial initial; padding: 2px; margin: 0px; border: 1px dotted #000000;">RowType.DataMembers</span>. The <span style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; color: #000000; font-family: monospace !important; background-position: initial initial; background-repeat: initial initial; padding: 2px; margin: 0px; border: 1px dotted #000000;">RowType.Name</span> is the name of the table without the &#8220;dbo&#8221; in front. The <span style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; color: #000000; font-family: monospace !important; background-position: initial initial; background-repeat: initial initial; padding: 2px; margin: 0px; border: 1px dotted #000000;">RowType.DataMembers</span> is a list of the columns of that table.<br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" />The <span style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; color: #000000; font-family: monospace !important; background-position: initial initial; background-repeat: initial initial; padding: 2px; margin: 0px; border: 1px dotted #000000;">RowType.DataMembers</span> objects are of type <span style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; color: #000000; font-family: monospace !important; background-position: initial initial; background-repeat: initial initial; padding: 2px; margin: 0px; border: 1px dotted #000000;">System.Data.Linq.Mapping.MetaDataMember</span>. One property of this class is the <span style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; color: #000000; font-family: monospace !important; background-position: initial initial; background-repeat: initial initial; padding: 2px; margin: 0px; border: 1px dotted #000000;">MappedName</span> property that we are using as the <span style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; color: #000000; font-family: monospace !important; background-position: initial initial; background-repeat: initial initial; padding: 2px; margin: 0px; border: 1px dotted #000000;">DisplayMemberPath</span>. This gives us the name of the column without any extra data.</p>
]]></content:encoded>
			<wfw:commentRss>http://eclipsed4utoo.com/blog/wpf-loading-linqtosql-tables-columns-combobox/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WPF &#8211; Create Animation Programmatically</title>
		<link>http://eclipsed4utoo.com/blog/wpf-create-animation-programmatically/</link>
		<comments>http://eclipsed4utoo.com/blog/wpf-create-animation-programmatically/#comments</comments>
		<pubDate>Thu, 20 May 2010 22:00:48 +0000</pubDate>
		<dc:creator>Ryan Alford</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Animation]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[storyboard]]></category>
		<category><![CDATA[wpf]]></category>

		<guid isPermaLink="false">http://eclipsed4utoo.com/blog/?p=332</guid>
		<description><![CDATA[This is a short code snippet on creating an animation in WPF through code. In my Twitter app that I have been working on, I was recently doing some optimizations.  When I first did the app, I was new to WPF and knew nothing about animations.  After spending time in Silverlight, I used that knowledge [...]]]></description>
			<content:encoded><![CDATA[<p>This is a short code snippet on creating an animation in WPF through code.</p>
<p>In my <a href="http://eclipsed4utoo.com/blog/twiteclipse-twitter-desktop-client/" target="_blank">Twitter</a> app that I have been working on, I was recently doing some optimizations.  When I first did the app, I was new to WPF and knew nothing about animations.  After spending time in Silverlight, I used that knowledge to do some animations in WPF.</p>
<p>I wanted to do simple &#8220;fade-in&#8221; and &#8220;fade-out&#8221; animations when removing tweets from view and adding new tweets to the view.   And being the person that I am, I like doing this stuff in code.  While I like XAML a lot, I still like writing the code.  So here is how to do an animation that changes the Opacity property programmatically.</p>
<pre class="brush: csharp;">
// because I am doing these as extension methods, they
//   will be available to all UIElement objects, which are
//   basically all controls that can be added to the GUI
public static class ControlAnimationExtensionMethods
{
    public static void FadeIn(this UIElement targetControl)
    {
        DoubleAnimation fadeInAnimation = new DoubleAnimation(0, 1, new Duration(TimeSpan.FromSeconds(1.5)));
        Storyboard.SetTarget(fadeInAnimation, targetControl);
        Storyboard.SetTargetProperty(fadeInAnimation, new PropertyPath(UIElement.OpacityProperty));
        Storyboard sb = new Storyboard();
        sb.Children.Add(fadeInAnimation);
        sb.Begin();
    }

    public static void FadeOut(this UIElement targetControl)
    {
        DoubleAnimation fadeInAnimation = new DoubleAnimation(1, 0, new Duration(TimeSpan.FromSeconds(1.5)));
        Storyboard.SetTarget(fadeInAnimation, targetControl);
        Storyboard.SetTargetProperty(fadeInAnimation, new PropertyPath(UIElement.OpacityProperty));
        Storyboard sb = new Storyboard();
        sb.Children.Add(fadeInAnimation);
        sb.Begin();
    }
}
</pre>
<p>This code is useful when dynamically creating controls that you want to do animations on.</p>
<pre class="brush: csharp;">
TextBlock tb = new TextBlock();
tb.Name = &quot;textBlock1&quot;;
// set more property values

tb.FadeIn();
</pre>
]]></content:encoded>
			<wfw:commentRss>http://eclipsed4utoo.com/blog/wpf-create-animation-programmatically/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>WPF &#8211; Using an Application Configuration File</title>
		<link>http://eclipsed4utoo.com/blog/wpf-application-configuration-file/</link>
		<comments>http://eclipsed4utoo.com/blog/wpf-application-configuration-file/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 19:16:01 +0000</pubDate>
		<dc:creator>Ryan Alford</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[app.config]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[ConfigurationManager]]></category>
		<category><![CDATA[wpf]]></category>

		<guid isPermaLink="false">http://eclipsed4utoo.com/blog/?p=292</guid>
		<description><![CDATA[This is going to be a real short post about an issue that I ran into recently with WPF. I was wanting to use an app config file with my WPF application.  I was running into an issue with the ConfigurationManager calls not getting the information from the app config file. I added the app [...]]]></description>
			<content:encoded><![CDATA[<p>This is going to be a real short post about an issue that I ran into recently with WPF.</p>
<p>I was wanting to use an app config file with my WPF application.  I was running into an issue with the ConfigurationManager calls not getting the information from the app config file.</p>
<p>I added the app config just like I would in a Windows Form..<br />
<img class="alignnone size-full wp-image-293" title="AppConfig" src="http://eclipsed4utoo.com/blog/wp-content/uploads/2010/02/AppConfig.png" alt="AppConfig" width="543" height="334" /></p>
<p>My app config file looked something like this&#8230;</p>
<pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
&lt;configuration&gt;
  &lt;appSettings&gt;
     &lt;add key=&quot;myKey&quot; value=&quot;SomeValue&quot; /&gt;
  &lt;/appSettings&gt;
&lt;/configuration&gt;
</pre>
<p>I was using the standard code that works fine in Windows Forms(needed to add a reference to the System.Configuration):</p>
<pre class="brush: csharp;">
using System.Configuration

private void Window_Loaded(object sender, RoutedEventArgs e)
{
     var myKey = ConfigurationManager.AppSettings[&quot;myKey&quot;];
}
</pre>
<p>However, the app settings were not being found.  After scratching my head for a while and searching numerous places online, I found a small response on a forum.  None of the &#8220;MVP&#8221;s picked up on it.  It was because of the name of the app config file.  By default, VS2008 added the file as &#8220;App1.config&#8221;.  For some reason, the ConfigurationManager class looks for a file named exactly &#8220;App.config&#8221;.</p>
<p>So simply changing the name of the config file to &#8220;App.config&#8221; fixed the issue and the code started working.</p>
]]></content:encoded>
			<wfw:commentRss>http://eclipsed4utoo.com/blog/wpf-application-configuration-file/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>TwitEclipse &#8211; My Twitter Desktop Client</title>
		<link>http://eclipsed4utoo.com/blog/twiteclipse-twitter-desktop-client/</link>
		<comments>http://eclipsed4utoo.com/blog/twiteclipse-twitter-desktop-client/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 20:15:26 +0000</pubDate>
		<dc:creator>Ryan Alford</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[OAuth]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[twitter desktop client]]></category>
		<category><![CDATA[wpf]]></category>

		<guid isPermaLink="false">http://eclipsed4utoo.com/blog/?p=195</guid>
		<description><![CDATA[I have released a BETA version of my Twitter Desktop Client called TwitEclipse.  I have been writing a Twitter API library in .Net for a while now, and figured I might as well write a desktop client also. The client uses .Net 3.5 SP1 and WPF.  It was a great learning experience to learn WPF [...]]]></description>
			<content:encoded><![CDATA[<p>I have released a BETA version of my Twitter Desktop Client called TwitEclipse.  I have been writing a Twitter API library in .Net for a while now, and figured I might as well write a desktop client also.</p>
<p>The client uses .Net 3.5 SP1 and WPF.  It was a great learning experience to learn WPF since I had almost no previous experience with it.</p>
<p>If you want to download it and test it out, you can download it from <a title="TwitEclipse" href="http://eclipsed4utoo.com/TwitEclipse" target="_blank">here</a>.  Remember that it is a BETA.  You could run into issues.  If you do, be sure to let me know so I can fix them.  I will also be adding additional features to the app once I get a chance.</p>
<p>I will be releasing my Twitter API library soon also.</p>
]]></content:encoded>
			<wfw:commentRss>http://eclipsed4utoo.com/blog/twiteclipse-twitter-desktop-client/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

