WPF Combox и несколько флажков - PullRequest
0 голосов
/ 22 марта 2011

В XAML как бы вы располагали в списке или сетке слева поле со списком и несколько флажков справа на прямой линии?

Допустим, у меня была такая структура данных.

sudo:

// for combo
class Option
{
  int key {get;set;}
  string value{get;set;}
}

// for checkboxes
class Selection
{
  int key {get;set;}
  string value{get;set;}
  bool isSelected {get;set;}
}


class Item
{
  Item
  {
    selections = new List<Selection>();
    Options = new List<Option>();
  }
  List<Selection> selections {get;set;}
  List<Option> Options{get;set;}      
}

Теперь это будет источник элемента.

List<Item> x = new List<Item>();

Item i = new Item();
i.Selections.add(blah); 25 selections
i.Options.add(blah);  3 checkboxes
x.add(i) 50 combination's. 

control.itemsource = x;

Как будет выглядеть XAML.Я застрял, поскольку я совершенно не понимаю.

Спасибо ...

1 Ответ

3 голосов
/ 22 марта 2011
<ListBox ItemsSource="{Binding Items}" >
    <ListBox.ItemTemplate>
        <DataTemplate>

            <!-- This is your combobox -->
            <DockPanel HorizontalAlignment="Stretch" LastChildFill="False">
                <ComboBox ItemsSource="{Binding Options}" DockPanel.Dock="Left">
                    <ComboBox.ItemTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding value}" />
                        </DataTemplate>
                    </ComboBox.ItemTemplate>
                </ComboBox>

                <!-- This is your line of checkboxes -->
                <ListBox ItemsSource="{Binding Selections}" DockPanel.Dock="Right">
                    <ListBox.ItemsPanel>
                        <ItemsPanelTemplate>
                            <StackPanel Orientation="Horizontal"/>
                        </ItemsPanelTemplate>
                    </ListBox.ItemsPanel>
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <CheckBox IsChecked="{Binding isSelected}" />
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>
            </DockPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...