加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读