【发布时间】:2016-12-19 13:23:41
【问题描述】:
当每个组内都有一个复选框列表时,我需要创建一个组框列表,所有这些都是动态加载的。 我创建了将所有复选框插入所有组框的虚拟机:
ObservableCollection<GroupBox> Groups = new ObservableCollection<GroupBox>();
GroupBox group = new GroupBox();
ObservableCollection<CheckBox> content= new ObservableCollection<CheckBox>();
group.content = content;
Content.Add(new checkBox());
Content.Add(new checkBox());
.
.
.
我的 xaml 看起来像这样:
<ItemsControl ItemSource = "{Binding Groups}">
<ItemsControl ItemSource = "{Binding Content}">
</ItemsControl
</ItemsControl>
如果我只绑定到组:我得到很好的组框,但是当我在里面添加 itemsControl 时,它不起作用。
我得到:“在使用 ItemsSource 之前,项目集合必须为空”
我哪里出错了? TX Tal
【问题讨论】:
-
如果每个组都有自己的复选框列表,那么您需要为您的组创建
GroupViewModel,在其中您将有一个List<Checkbox>。然后你会有一个<ItemsControl>在GroupViewModel和第二个<ItemsControl>和List<GroupViewModel>在你的父母ViewModel -
在这里查看接受的答案:social.msdn.microsoft.com/Forums/vstudio/en-US/…。我认为您正在混合您的模型/视图。您的模型数据应该是一个以字符串为键(组框名称)的字典,并且每个项目都是一个包含布尔值的结构。在您的 xaml 中,您应该指出每个外部项目创建一个组框,每个内部项目表示为一个复选框。
标签: wpf