WPF:Treeview Item Root使用不同的模板然后使用子节点
发布时间:2020-12-14 00:51:03 所属栏目:Linux 来源:网络整理
导读:我目前正在尝试将我的业务对象绑定到树视图作为根.而它的收藏属性就像孩子一样. [我希望通过BINDING实现这一点] 像这样的东西. public object MyBusinessObject{ private int _number; private bool _isSelected; private ObservableCollectionAnotherObject
我目前正在尝试将我的业务对象绑定到树视图作为根.而它的收藏属性就像孩子一样. [我希望通过BINDING实现这一点]
像这样的东西. public object MyBusinessObject { private int _number; private bool _isSelected; private ObservableCollection<AnotherObject> _other = new ObservableCollection<AnotherObject>(); public int Number { get {return _number;} set {_number = value;}} public bool IsSelected{ get {return _isSelected;} set {_isSelected= value;}} public ObservableCollection<AnotherObject> Children { get {return _other;}} } 我希望我的treeview像这样表示: >“CheckBox绑定到IsSelected”“文本绑定到数字” >绑定到我的“孩子”的孩子一览 >“CheckBox绑定到IsSelected”“文本绑定到数字” >绑定到我的“孩子”的孩子一览 我不知道如何在xaml中执行此操作: <TreeView x:Name="_tv" ItemsSource="{Binding Path=MyBusinessObject}" > <TreeView.Resources> <HierarchicalDataTemplate> <CheckBox Content="{Binding Path=Number} IsChecked="{Binding Path=IsSelected}" /> </HierarchicalDataTemplate> <HierarchicalDataTemplate ItemsSource="{Binding Path=Children}"> <TextBlock Text="{Binding Path=Name}" /> </HierarchicalDataTemplate> </TreeView.Resources> </TreeView> 我知道以上是不对的,但我想知道是否有办法正确地做到这一点. 感谢致敬, 解决方法
当然,您可以使用HierarchicalDataTemplate.ItemTemplate属性来定义要用于AnotherObject实例集合的数据模板.
<TreeView ItemsSource="{Binding SomeCollectionOfObjects}"> <TreeView.ItemTemplate> <HierarchicalDataTemplate ItemsSource="{Binding Children}"> <!-- This is used for your AnotherObject instances --> <HierarchicalDataTemplate.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Name}" /> </DataTemplate> </HierarchicalDataTemplate.ItemTemplate> <!-- This is used for your MyBusinessObject instances --> <CheckBox Content="{Binding Number}" IsChecked="{Binding IsSelected}" /> </HierarchicalDataTemplate> </TreeView.ItemTemplate> </TreeView> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |