【发布时间】:2011-03-23 10:09:25
【问题描述】:
抱歉描述的模糊,我想不出更好的表达方式。
假设我的 ViewModel 有如下属性:
public List<MyClass> SubSystems { get; set; }
和 SubSystems 类:
public class SubSystem
{
public string Name { get; set; }
public bool IsSelected { get; set; }
}
在视图中,我想将SubSystems 属性绑定到一个复选框列表,其中 CheckBox 的 IsChecked 和 Name 属性绑定到它们各自的属性 IsChecked 为 IsSelected和名称的内容。
我知道我可以在 XAML 中创建一个 ListBox,但我不确定我将如何使用绑定和集合来执行此操作..
感谢您的帮助!
编辑 -
这是 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 -
澄清一下,所有示例都填充了该框,但没有一个示例在设置器中的断点处中断。
【问题讨论】:
-
您还需要 NotifyPropertyChanged 以防您的 SubSystem 对象在其他地方发生更改,它应该通知 CheckBox 它已更改,因此 CheckBox 可以自行更新。
标签: c# wpf visual-studio-2008 .net-3.5