我的面板中有两个树视图。
要做: 将节点扩展到第2级。 在第一个树视图中的选择父节点上,它应该在第二个树视图中显示子节点及其详细信息。在新选项卡/新树视图中选择子节点应该打开的父节点。
需要帮助!
<telerik:RadTreeListView
x:Name="Tree1"
AutoGenerateColumns="False"
ShowInsertRow="False"
RowDetailsVisibilityMode="Collapsed"
RowIndicatorVisibility="Collapsed"
EnableColumnVirtualization="True"
EnableRowVirtualization="True"
SelectionMode="Single"
SelectionUnit="Cell"
AlternationCount="2"
RowHeight="25"
FontSize="14"
FontWeight="Bold"
GroupRenderMode="Flat"
CanUserInsertRows="False"
CanUserResizeRows="False"
CanUserDeleteRows="False"
CanUserReorderColumns="False"
CanUserFreezeColumns="False"
IsExpandedBinding="{Binding IsExpanded, Mode=TwoWay}"
IsSynchronizedWithCurrentItem="False"
Grid.Row="1"
Visibility="Visible"
IsReadOnly="True"
>
<telerik:RadTreeListView.ChildTableDefinitions>
<telerik:TreeListViewTableDefinition ItemsSource="{Binding TeamCollection}" />
</telerik:RadTreeListView.ChildTableDefinitions>
<telerik:RadTreeListView.Columns>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Team}"
Header="Name" IsReadOnly="True" MinWidth="100" HeaderTextAlignment="Center" />
</telerik:RadTreeListView.Columns>
</telerik:RadTreeListView>
<telerik:RadTreeListView
x:Name="Tree1"
AutoGenerateColumns="False"
ShowInsertRow="False"
RowDetailsVisibilityMode="Collapsed"
RowIndicatorVisibility="Collapsed"
EnableColumnVirtualization="True"
EnableRowVirtualization="True"
SelectionMode="Single"
SelectionUnit="Cell"
AlternationCount="2"
RowHeight="25"
FontSize="14"
FontWeight="Bold"
GroupRenderMode="Flat"
CanUserInsertRows="False"
CanUserResizeRows="False"
CanUserDeleteRows="False"
CanUserReorderColumns="False"
CanUserFreezeColumns="False"
IsExpandedBinding="{Binding IsExpanded, Mode=TwoWay}"
IsSynchronizedWithCurrentItem="False"
Grid.Row="1"
Visibility="Visible"
IsReadOnly="True"
>
<telerik:RadTreeListView.ChildTableDefinitions>
<telerik:TreeListViewTableDefinition ItemsSource="{Binding TeamCollection}" />
</telerik:RadTreeListView.ChildTableDefinitions>
<telerik:RadTreeListView.Columns>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Team}"
Header="Name" IsReadOnly="True" MinWidth="100" HeaderTextAlignment="Center" />
<telerik:GridViewDataColumn DataMemberBinding="{Binding City}"
Header="City" IsReadOnly="True" MinWidth="100" HeaderTextAlignment="Center" />
</telerik:RadTreeListView.Columns>
</telerik:RadTreeListView>
答案 0 :(得分:0)
首先,两个TreeView都绑定到相同的ItemsSources(并且具有相同的Name,它们甚至不编译...)。您将要将第二个TreeView绑定到另一个集合,并根据第一个TreeView的SelectedItem修改该集合。
<telerik:RadTreeListView x:Name="Tree1"
SelectedItem="{Binding SelectedParentItem}"
...>
<telerik:RadTreeListView.ChildTableDefinitions>
<telerik:TreeListViewTableDefinition ItemsSource="{Binding TeamCollection}" />
</telerik:RadTreeListView.ChildTableDefinitions>
...
<telerik:RadTreeListView />
<telerik:RadTreeListView x:Name="Tree2"
...>
<telerik:RadTreeListView.ChildTableDefinitions>
<telerik:TreeListViewTableDefinition ItemsSource="{Binding ChildTeamCollection}" />
</telerik:RadTreeListView.ChildTableDefinitions>
...
<telerik:RadTreeListView />
在您的DataContext中,ChildTeamCollection
更改时设置SelectedParentItem
。
private object selectedParentItem;
public object SelectedParentItem
{
get { return selectedParentItem; }
set
{
if (selectedParentItem != value)
{
selectedParentItem = value;
ChildTeamCollection = GetChildItemsSource(); // Retrieve the child items of the selected node
}
}
}
关于你问题的最后一部分......我仍然不明白你的意思&#34;新标签\ new treeview&#34;。你的意思是在另一个地方有一个全新的TreeView吗?或者你的意思是你的例子中的第二个TreeView?