【发布时间】:2014-02-12 17:50:52
【问题描述】:
作为我first TreeView question on SO 的后续行动,我无法将 TreeView 控件绑定到我的 Commission 对象的 Id 属性和它在同一个 TreeView 控件中的 Products 集合。 这是我的简化模型:
internal class Contract
{
public string Name { get; set; }
public ObservableCollection<Commission> Commissions { get; set; }
}
internal class Commission
{
public string Id { get; set; }
public ObservableCollection<Product> Products { get; set; }
}
internal class Product
{
public string Code { get; set; }
}
这是我的问题 XAML。合约返回一组佣金对象(Commissions)。我已经注释掉了用于返回产品的 HierarchicalDataTemplate。 HierarchicalDataTemplate 中的任何一个都可以单独工作,但如果两者都未注释,则不会:
<TreeView ItemsSource="{Binding Contract.Commissions}">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type m:Commission}">
<TextBlock Text="{Binding Id}" />
</HierarchicalDataTemplate>
<!--<HierarchicalDataTemplate DataType="{x:Type m:Commission}" ItemsSource="{Binding Products}">
<TextBlock Text="{Binding Code}" />
</HierarchicalDataTemplate>-->
</TreeView.Resources>
</TreeView>
如果两个 HierarchicalDataTemplate 均未注释,则会引发错误,因为我使用了唯一的(佣金类型)两次,但我不知道如何在不使用佣金类型作为模板的 DataType 的情况下使任一 HierarchicalDataTemplate 工作。
【问题讨论】: