Вопрос

Редактировать: Теперь, похоже, это ошибка с элементами управления Telerik, которые я использую. После повторного внедрения моего XAML, используя дерево .NET, я получаю результаты, которые я ожидаю. Я сообщил об этом Telerik и отвечу на эту публикацию, услышав от них.

Я пытаюсь (с ограниченным успехом) создать дерево, который содержит смесь динамических и статических данных.

Вы найдете мою нынешнюю лучшую попытку этого ниже, однако, так как я в гнездовании деревьев есть побочный эффект, в котором можно получить несколько элементов в выбранном родительском деревье. Когда я попробовал гнездовать TreeViewItems, результаты не были положительными, т.е. только родительский уровень TreeViewItem в ItemTemplate отображается, и пространство для детей создается, но ничего не выводит.

Я действительно хотел бы знать, как достичь своей цели, не прибегая к указанию всего меню в коллекциях, которые я связываю с 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>
Это было полезно?

Решение

Телерик подтвердил, что это невозможно с их управлением RadtreeView, и они добавили его в свой список TODO.

В любом случае спасибо за комментарии.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top