0

编辑:现在看起来这是我正在使用的 Telerik 控件的错误。使用 .Net TreeView 重新实现我的 XAML 后,我得到了预期的结果。我已将此情况报告给 Telerik,并会在收到他们的回复后回复此帖子。

我正在尝试(成功有限)创建一个包含动态和静态数据混合的 TreeView。

您会在下面找到我目前的最佳尝试,但是由于我正在嵌套 TreeViews,因此有一个副作用,即可以在父 TreeView 中选择多个项目。当我尝试嵌套 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>
4

1 回答 1

0

Telerik 已确认这对于他们的 RadTreeView 控件是不可能的,并且他们已将其添加到他们的 TODO 列表中。

无论如何,感谢您的评论。

于 2011-12-07T09:48:03.123 回答