WPF 自定义ItemsControl三层嵌套无法生成第三层控件
我在尝试制作一个数独的小游戏,我自定义了三个控件,分别是:SudokuPanel,SudokuGroup和SudokuItem。
SudokuPanel:作为数独表格的主面板区域,继承ItemsControl,限制了Item项为SudokuGroup。
SudokuGroup:数独9*9的区域,继承ItemsControl,限制了Item项为SudokuItem。
SudokuItem:数独的单元格,继承Button。
在ViewModel定义了属性ObservableCollection<Unit> Units,Unit对象含有ObservableCollection<Cell> Children属性,两个类均实现了INotifyPropertyChanged接口。
现在运行程序,只会显示到SudokuGroup层级,不明白为什么会这样?该如何修改?
<ctrl:SudokuPanel ItemsSource="{Binding Units}" Margin="5">
<ctrl:SudokuPanel.ItemTemplate>
<DataTemplate>
<ctrl:SudokuGroup ItemsSource="{Binding Children}">
<ctrl:SudokuGroup.ItemTemplate>
<DataTemplate>
<ctrl:SudokuItem Content="2"/>
</DataTemplate>
</ctrl:SudokuGroup.ItemTemplate>
</ctrl:SudokuGroup>
</DataTemplate>
</ctrl:SudokuPanel.ItemTemplate>
</ctrl:SudokuPanel>
我给SudokuGroup添加了一个触发器,整个SudokuGroup背景色都变成了红色,这让我更加觉得是没有生成SudokuItem,而不是SudokuItem“藏”起来了。
<Trigger Property="HasItems" Value="False">
<Setter Property="Background" Value="Red"/>
</Trigger>
相关推荐
WPF自定义分页控件
WPF用于分页显示的自定义控件,可见博文:http://blog.csdn.net/zhuo_wp/article/details/78599170
WPF中ItemsControl的异步加载
WPF的ItemsControl的ItemsSource的异步加载,引用程序集,使用依赖项属性,可以异步加载。
WPF集合控件实现分隔符(ItemsControl Separator)
主要为大家详细介绍了WPF集合控件实现分隔符ItemsControl Separator,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
WPF页面式UniformGrid ItemsControl
本技巧介绍了一个控件,该控件派生自使用UniformGrid进行显示的ItemsControl。
WPF做的左侧展开的标签控件(类似TREEVIEW)
用WPF做的,类似TREEVIEW的导航控件。 点击某个标题的时候,自动展开下面的子项列表,同时关闭之前展开的子项列表。 要是对项目有其他好点子,欢迎讨论llyyqq123@163.com


