WPF 组合框和多个复选框

发布于 2024-10-25 00:45:39 字数 796 浏览 1 评论 0原文

在 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 是什么样子的?我被困住了,因为我完全不明白。

谢谢...

In XAML how would you have in a list or grid on the left side a combo box and the right side multiple check boxes in a straight line?

Let say I had a data structure like.

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;}      
}

Now this would be the item source.

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;

What would the XAML look like. I am stuck as I quite dont get it.

Thanks...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

绮筵 2024-11-01 00:45:39
<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>
<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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文