我有两个课,我想在树视图中显示. 在我的主窗口中,我有一个可观察的某种类型对象的集合,称之为对象a. 对象a包含另一种类型对象(对象b)的可观察集合. 每个对象b包含一个可观察的对象
在我的主窗口中,我有一个可观察的某种类型对象的集合,称之为对象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表示).