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

c# – 如何将wpf treeview与不同类型的嵌套对象一起使用

发布时间:2020-12-16 01:31:32 所属栏目:百科 来源:网络整理
导读:我有两个课,我想在树视图中显示. 在我的主窗口中,我有一个可观察的某种类型对象的集合,称之为对象a. 对象a包含另一种类型对象(对象b)的可观察集合. 每个对象b包含一个可观察的对象b集合. 例如,我可能有一些看起来像这样的东西 ListOfObjectA的 -ObjectA1 –L
我有两个课,我想在树视图中显示.

在我的主窗口中,我有一个可观察的某种类型对象的集合,称之为对象a.
对象a包含另一种类型对象(对象b)的可观察集合.
每个对象b包含一个可观察的对象b集合.

例如,我可能有一些看起来像这样的东西

ListOfObjectA的

-ObjectA1

–ListOfObjectB的

—对象B

—- ListOfObjectB的

—–对象B

-ObjectA2

–ListOfObjectB的

—对象B

我的xaml应该将树视图绑定到类似的东西?

对不起,如果我不是很好解释,我是wpf的新手.

解决方法

RB有正确的想法.这就是 WPF将模板应用于普通.NET对象的能力变得非常强大的地方.

您需要指定两个HierarchicalDataTemplates,一个用于类型a的对象,另一个用于类型b的对象.像这样的东西:

<TreeView>
    <TreeView.Resources>
        <HierarchicalDataTemplate TargetType="{x:Type local:a}">
            <!-- XAML to display objects of type a -->
        </HierarchialDataTemplate>
        <HierarchicalDataTemplate TargetType="{x:Type local:b}">
            <!-- XAML to display objects of type b -->
        </HierarchicalDataTemplate>
    </TreeView.Resources>
</TreeView>

您需要为每个模板的ItemsSource属性指定绑定,以便WPF知道从哪里获取子对象.此外,您需要向根节点添加一个xmlns声明,指定对象所在的命名空间(在上面的示例代码中由local表示).

(编辑:李大同)

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

    推荐文章
      热点阅读