title: Multiple item combo box with headers?
body: <p>Is it possible to have "column headers" on a combo box bound to multiple items? For example a combo box that displays a persons name. The combo box would display John Doe. But I'd like to display column headers:</p>
  
  <pre><code>First   Last
  John    Doe
  Jane    Doe
  Jimmy   Doe
  </code></pre>
  
  <p>Is this possible without the use of a data grid?
  What about a simple solution that includes the use of a data grid? I found one solution for embedding a data grid into a combo box but it looks difficult and requires MS Blend.</p>
  
  <p>I'd be happy if I could just get some headers as the first row in the drop down.</p>
  
  <p>G</p>
  
  <p>Here is my xaml code with HB's attempt that produces a compile error as mentioned in the comments.</p>
  
  <pre><code>xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:dg="http://schemas.microsoft.com/wpf/2008/toolkit"
  </code></pre>
  
  
  
  <pre class="lang-xml prettyprint-override"><code>&lt;ComboBox Name="cboPlaceNames" Grid.IsSharedSizeScope="True" ItemsSource="{DynamicResource items}" Height="22" Width="285" Margin="0,6,165,0" SelectedIndex="0" HorizontalAlignment="Right" VerticalAlignment="Top" SelectionChanged="cboPlaceNames_SelectionChanged"&gt;
    &lt;ComboBox.Resources&gt;
      &lt;CompositeCollection x:Key="items"&gt;
        &lt;ComboBoxItem IsEnabled="False"&gt;
          &lt;Grid TextElement.FontWeight="Bold"&gt;
            &lt;Grid.ColumnDefinitions&gt;
              &lt;ColumnDefinition SharedSizeGroup="A"/&gt;
              &lt;ColumnDefinition Width="5"/&gt;
              &lt;ColumnDefinition SharedSizeGroup="B"/&gt;
              &lt;ColumnDefinition Width="5"/&gt;
              &lt;ColumnDefinition SharedSizeGroup="C"/&gt;
            &lt;/Grid.ColumnDefinitions&gt;
            &lt;Grid.Children&gt;
              &lt;TextBlock Grid.Column="0" Text="Name"/&gt;
              &lt;TextBlock Grid.Column="2" Text="CLLI"/&gt;
              &lt;TextBlock Grid.Column="4" Text="Street"/&gt;
            &lt;/Grid.Children&gt;
          &lt;/Grid&gt;
        &lt;/ComboBoxItem&gt;
        &lt;Separator/&gt;
        &lt;CollectionContainer Collection="{Binding Source={x:Reference cboPlaceNames}, Path=DataContext.Data}"/&gt;
      &lt;/CompositeCollection&gt;
  
      &lt;DataTemplate DataType="x:Type obj:PlaceName"&gt;
        &lt;Grid&gt;
          &lt;Grid.ColumnDefinitions&gt;
            &lt;ColumnDefinition SharedSizeGroup="A"/&gt;
            &lt;ColumnDefinition Width="5"/&gt;
            &lt;ColumnDefinition SharedSizeGroup="B"/&gt;
            &lt;ColumnDefinition Width="5"/&gt;
            &lt;ColumnDefinition SharedSizeGroup="C"/&gt;
          &lt;/Grid.ColumnDefinitions&gt;
          &lt;Grid.Children&gt;
            &lt;TextBlock Grid.Column="0" Text="{Binding Name}"/&gt;
            &lt;TextBlock Grid.Column="2" Text="{Binding CLLI}"/&gt;
            &lt;TextBlock Grid.Column="4" Text="{Binding Street}"/&gt;
          &lt;/Grid.Children&gt;
        &lt;/Grid&gt;
      &lt;/DataTemplate&gt;
    &lt;/ComboBox.Resources&gt;
  &lt;/ComboBox&gt;      
  </code></pre>