gpt4 book ai didi

c# - 如何将项目集合绑定(bind)到复选框列表框?

转载 作者:行者123 更新时间:2023-12-02 01:21:43 24 4
gpt4 key购买 nike

抱歉,描述含糊不清,我想不出更好的表达方式。

假设我的 ViewModel 具有如下属性:

public List<MyClass> SubSystems { get; set; }

和子系统类:

public class SubSystem
{
public string Name { get; set; }

public bool IsSelected { get; set; }
}

在 View 中,我想将 SubSystems 属性绑定(bind)到一个复选框列表,其中 CheckBox 的 IsChecked 和 Name 属性绑定(bind)到它们各自的属性,IsChecked 为 IsSelected,Content 为名称。

我知道我可以在 XAML 中创建一个 ListBox,但我不确定如何使用绑定(bind)和集合来完成此操作。

感谢您的帮助!

编辑-

这是 XAML:

<GroupBox Header="Sub-Systems" Grid.Column="0" Grid.Row="0" Margin="5">
<Grid>
<Grid.Resources>
<DataTemplate x:Key="checkBox">
<StackPanel Orientation="Horizontal">
<CheckBox IsChecked="{Binding IsSelected}" />
<TextBlock Text="{Binding Name}" />
</StackPanel>
</DataTemplate>
</Grid.Resources>
<ListBox ItemTemplate="{StaticResource checkBox}" ItemsSource="{Binding SubSystems}" />
</Grid>
</GroupBox>

编辑 #2 -

为了澄清,所有示例都填充了该框,但没有一个示例在 setter 中的断点处中断。

最佳答案

我认为您可能需要一个 ItemsControl,而不是 ListBox。列表框假设您想要选择 SubSystem 之一,但实际上,您只想使用数据模板排列项目:

<ItemsControl ItemsSource="{Binding SubSystems}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Checkbox IsChecked="{Binding IsSelected, Mode=TwoWay}" Content="{Binding Name}" />
</DataTemplate>
<ItemsControl.ItemTemplate>
</ItemsControl>

关于c# - 如何将项目集合绑定(bind)到复选框列表框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3374619/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com