我无法找到解决此问题的方法。 我有一个树视图,我正试图到达我点击/双击的点,它打开窗口不同部分的视图(假设使用网格分析器,树在右边,通过设置内容控制内容DP),左侧将打开相关视图。
感谢
答案 0 :(得分:1)
我的xaml看起来像:
<TreeView ItemsSource="{Binding Parents,IsAsync=True}" Name="tree" SelectedItemChanged="tree_SelectedItemChanged" Background="Transparent" >
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type local:XMLParentViewModel}"
ItemsSource="{Binding Children}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="500"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition MinHeight="20" />
</Grid.RowDefinitions>
<TextBlock Text="{Binding ParentDisplayText}" TextWrapping="Wrap"/>
</Grid>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type local:XMLChildViewModel}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="500"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition MinHeight="20" />
</Grid.RowDefinitions>
<TextBlock Text="{Binding ChildDisplayText}" TextWrapping="Wrap" MouseDown="TextBlock_PreviewMouseDown" />
</Grid >
</DataTemplate>
</TreeView.Resources>
</TreeView>
并知道选择了哪种元素:
private void tree_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
if( tree.SelectedItem.GetType() == typeof(XMLChildViewModel))
//Do what you need
}
我可以为您调整此代码,但如果您有更多问题
答案 1 :(得分:0)
克莱门斯说了什么,但我也很难理解问题/问题是什么?我们可以帮助您理解您的所有问题,让您获得更好的帮助:)
答案 2 :(得分:0)
我认为这会有所帮助。这里是XAML代码......
<TreeView Name="treenavigator" Grid.Row="1">
<TreeViewItem DisplayMemberPath="Item" Header="Item" Name="navitem">
<TreeViewItem Header="Add Item" Name="additem" />
<TreeViewItem Header="Update Item Details" Name="updateitem" />
<TreeViewItem Header="View Item Details" Name="viewitemdetails" />
<TreeViewItem Header="Delete Items" Name="deleteitem" />
</TreeViewItem>
</TreeView>
这里是样本C#代码。 grdForm
是我加载用户控制器的主窗口中的网格,AddItem
是我加载到grdForm
的用户控制器。
private void navitem_Selected(object sender, RoutedEventArgs e)
{
if (treenavigator.SelectedValue.ToString() == additem.ToString())
{
AddItem ItemView = new AddItem();
grdform.Children.Add(ItemView);
}
}