2011-03-22 4 views
0

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

Скажем, у меня была структура данных вроде.

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. Я застрял, так как я не понимаю.

Благодаря ...

ответ

3
<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> 
+0

Здравствуйте Monti большое спасибо. Я еще не пробовал, но это дает мне хорошее начало! Очень признателен. – nitefrog

Смежные вопросы