部分绑定的WPF TreeView
-
26-10-2019 - |
题
编辑: 现在看来,这是我正在使用的Telerik控件的错误。使用.NET TreeView重新实现我的XAML后,我会得到我期望的结果。我已经将其报告给Telerik,并在听到他们的回音后会回答此发布。
我正在尝试(成功有限)创建一个包含动态和静态数据的混合物的TreeView。
您将在下面找到我当前的最佳尝试,但是由于我正在嵌套树视图,因此有一个副作用,其中可以在所选的父view中使用多个项目。当我尝试嵌套treeViewiTems时,结果不是正面的,即显示ItemTemplate中的父级treeViewItem,并创建了其儿童的空间,但没有输出。
我真的很想知道如何在不诉诸于我绑定到TreeView的集合中指定整个菜单,以实现我的目标。
谢谢
<telerik:RadTreeView Width="225" HorizontalAlignment="Left" Background="Transparent" FontWeight="SemiBold">
<telerik:RadTreeViewItem Header="Customer" Command="{Binding OpenCustomerCommand}"/>
<telerik:RadTreeViewItem Header="Sites" Command="{Binding OpenSiteBrowserCommand}" ItemsSource="{Binding Sites}">
<telerik:RadTreeViewItem.ItemTemplate>
<DataTemplate>
<telerik:RadTreeView>
<telerik:RadTreeViewItem Header="{Binding Key}"
Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=view:WindowViewBase},
Path=DataContext.OpenSiteCommand}"
CommandParameter="{Binding Value}">
<telerik:RadTreeViewItem Header="Material Profiles"
Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=view:WindowViewBase},
Path=DataContext.OpenMaterialProfileBrowserCommand}"
CommandParameter="{Binding Value}"/>
<telerik:RadTreeViewItem Header="Prices"
Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=view:WindowViewBase},
Path=DataContext.OpenPriceBrowserCommand}"
CommandParameter="{Binding Value}"/>
<telerik:RadTreeViewItem Header="Orders"
Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=view:WindowViewBase},
Path=DataContext.OpenOrderBrowserCommand}"
CommandParameter="{Binding Value}"/>
<telerik:RadTreeViewItem Header="Activity">
<telerik:RadTreeViewItem Header="Collection"
Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=view:WindowViewBase},
Path=DataContext.OpenActivityCollectionsBrowserCommand}"
CommandParameter="{Binding Value}"/>
<telerik:RadTreeViewItem Header="Call Outs"
Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=view:WindowViewBase},
Path=DataContext.OpenActivityCallOutBrowserCommand}"
CommandParameter="{Binding Value}"/>
<telerik:RadTreeViewItem Header="Gate"
Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=view:WindowViewBase},
Path=DataContext.OpenActivityGateBrowserCommand}"
CommandParameter="{Binding Value}"/>
<telerik:RadTreeViewItem Header="One Off Charges"
Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=view:WindowViewBase},
Path=DataContext.OpenActivityOneOffChargeBrowserCommand}"
CommandParameter="{Binding Value}"/>
</telerik:RadTreeViewItem>
</telerik:RadTreeViewItem>
</telerik:RadTreeView>
</DataTemplate>
</telerik:RadTreeViewItem.ItemTemplate>
</telerik:RadTreeViewItem>
解决方案
Telerik已经确认,通过其Radtreeview控件,这是不可能的,他们已经将其添加到了他们的待办事项列表中。
无论如何,感谢您的评论。
不隶属于 StackOverflow