C# C1HierarchycalDataTemplate/C1TreeView问题
我在使用C1HierarchycalDataTemplate在Silverlight中构建ComponentOne树视图(C1TreeView)时遇到问题。详细而言,该树仅显示2个级别(H1和H2),尽管3个级别是通过HierarchycalDataTemplates定义的,如:C# C1HierarchycalDataTemplate/C1TreeView问题,c#,silverlight,treeview,hierarchicaldatatemplate,componentone,C#,Silverlight,Treeview,Hierarchicaldatatemplate,Componentone,我在使用C1HierarchycalDataTemplate在Silverlight中构建ComponentOne树视图(C1TreeView)时遇到问题。详细而言,该树仅显示2个级别(H1和H2),尽管3个级别是通过HierarchycalDataTemplates定义的,如: <c1:C1HierarchicalDataTemplate x:Key="H3Template"> <TextBlock FontWeight="Bold" Text="{Bin
<c1:C1HierarchicalDataTemplate x:Key="H3Template">
<TextBlock FontWeight="Bold" Text="{Binding Path=Name}" />
</c1:C1HierarchicalDataTemplate>
<c1:C1HierarchicalDataTemplate x:Key="H2Template" ItemsSource="{Binding Path=H3Items}" ItemTemplate="{StaticResource H3Template}">
<TextBlock FontWeight="Bold" Text="{Binding Path=Name}" />
</c1:C1HierarchicalDataTemplate>
<c1:C1HierarchicalDataTemplate x:Key="H1Template" ItemsSource="{Binding Path=H2Items}" ItemTemplate="{StaticResource H2Template}">
<TextBlock FontWeight="Bold" Text="{Binding Path=Name}" />
</c1:C1HierarchicalDataTemplate>");
");
我正在自定义TreeView(源自C1TreeView)中使用此模板:
此树视图的构造函数如下所示:
public MyTreeView(ObservableCollection<H1> h1Items)
{
InitializeComponent();
ItemsSource = h1Items;
}
公共MyTreeView(可观察到的收集项目)
{
初始化组件();
项目来源=H1项目;
}
有人能看到这些代码片段中的错误吗
thx,Dom虽然我不熟悉您正在使用的ComponentOne树视图,而且尽管您正在使用Silverlight,但通常在WPF中,当您使用HierarchicalDataTemplates时,您会告诉模板它是用于什么类型的。子项模板也会被类似地告知它们适用于什么类型。您不会特别告诉告诉数据模板它的ItemTemplate要使用什么模板。这由系统根据对象的类型自动计算出来。这也适用于将项目集合绑定到TreeView时——您不必指定ItemTemplate 因此,在您的示例中(
local:
是在xaml顶部定义的名称空间):
树景:
<c1:C1TreeView ItemsSource="{Binding SomeH1List}"/>
当然,正如我所说的,这适用于WPF,因此它可能不适用于您的情况。虽然我不熟悉您正在使用的ComponentOne树视图,而且尽管您正在使用Silverlight,但通常在WPF中使用HierarchycalDataTemplates时,您会告诉模板它的类型。子项模板也是类似的告诉他们应用于哪种类型。你不需要明确告诉数据模板它的ItemTemplate使用哪种模板。这由系统根据对象的类型自动计算出来。当你将一个item集合绑定到TreeView时,这也适用——你不必指定ItemTemplate 因此,在您的示例中(
local:
是在xaml顶部定义的名称空间):
树景:
<c1:C1TreeView ItemsSource="{Binding SomeH1List}"/>
当然,正如我所说,这适用于WPF,所以它可能不适用于您的情况
<c1:C1TreeView ItemsSource="{Binding SomeH1List}"/>