2016-05-03 10 views
0

私はこの件について検索しましたが、1つのcomboBoxItemでさまざまな列を入力する必要があることがわかりました。 私が必要とするのは、comboBoxの全長を短くするためにさまざまな列にワープされた単一の列のリストです。さらに、1つの項目の検索を容易にするためにいくつかのヘッダーをセクションの区切りに設定します。 ここに私が探しているWathの例:複数の列にドロップダウンコンボボックスのスポーンを作成するにはどうすればよいですか?

multi columns ComboBox

私は、ComboBoxスタイルのポップアップタグ内grid.columns定義をめちゃくちゃにしていますが、私は、適切な結果を得ていませんよ。

ありがとうございました。

答えて

0

XAML:

<ComboBox Height="23" HorizontalAlignment="Left" Margin="84,51,0,0" Name="comboBox1" VerticalAlignment="Top" Width="120"> 
     <ComboBox.ItemTemplate> 
      <DataTemplate> 
       <StackPanel> 
        <TextBlock Text="{Binding Text}" /> 
       </StackPanel> 
      </DataTemplate> 
     </ComboBox.ItemTemplate> 
     <ComboBox.ItemsPanel> 
      <ItemsPanelTemplate> 
       <WrapPanel Orientation="Vertical" Height="100" /> 
      </ItemsPanelTemplate> 
     </ComboBox.ItemsPanel> 
     <ComboBox.ItemContainerStyle> 
      <Style TargetType="ListBoxItem"> 
       <Setter Property="IsEnabled" Value="{Binding CanSelect}" /> 
      </Style> 
     </ComboBox.ItemContainerStyle> 
    </ComboBox> 

のC#:

public class Item 
    { 
     public string Text { get; set; } 
     public bool CanSelect { get; set; } 
    } 

    public class SelectableItem : Item 
    { 
     public SelectableItem() 
     { 
      CanSelect = true; 
     } 
    } 

    public class Header : Item 
    { 
    } 

    // inside constructor or wherever: 
    var items = new Item[] { 
     new Header() { Text = "Header1"}, 
     new SelectableItem() { Text = "ComboboxItem"}, 
     new SelectableItem() { Text = "ComboboxItem"}, 
     new SelectableItem() { Text = "ComboboxItem"}, 
     new SelectableItem() { Text = "ComboboxItem"}, 
     new SelectableItem() { Text = "ComboboxItem"}, 
     new Header() { Text = "Header2"}, 
     new SelectableItem() { Text = "ComboboxItem"}, 
     new SelectableItem() { Text = "ComboboxItem"}, 
     new Header() { Text = "Header3"}, 
     new SelectableItem() { Text = "ComboboxItem"}, 
     new SelectableItem() { Text = "ComboboxItem"}, 
     new SelectableItem() { Text = "ComboboxItem"}, 
     new SelectableItem() { Text = "ComboboxItem"}, 
     new SelectableItem() { Text = "ComboboxItem"}, 
     new SelectableItem() { Text = "ComboboxItem"} 
    }; 
    comboBox1.ItemsSource = items; 
関連する問題