C# 如何在树状视图中检索所选项目

C# 如何在树状视图中检索所选项目,c#,wpf,C#,Wpf,我想在树状视图中检索所选项目的标题 我的代码: XAML: C#: 私有无效项(对象发送方,RoutedPropertyChangedEventArgs e) { string compteselectionne=Convert.ToString(TreeView.SelectedItem); 如果(compteselectionne==“Comptes”) { ListComptes.Visibility=可见性.Visibility; } ListComptes.Visibility=可

我想在树状视图中检索所选项目的标题

我的代码: XAML:


C#:

私有无效项(对象发送方,RoutedPropertyChangedEventArgs e)
{
string compteselectionne=Convert.ToString(TreeView.SelectedItem);
如果(compteselectionne==“Comptes”)
{
ListComptes.Visibility=可见性.Visibility;
}
ListComptes.Visibility=可见性.Hidden;
}
此代码向我显示System.Windows.Controls.TreeViewItem标题:Comptes项。计数:1


感谢您的支持

字符串compteselectionne=((TreeView项目)TreeView.SelectedItem).Header

您还可以执行以下操作

private void item(object sender, RoutedPropertyChangedEventArgs<object> e)
{
    TreeView tree = sender as TreeView;
    TreeViewItem item = tree.SelectedItem as TreeViewItem;
}
私有无效项(对象发送方,RoutedPropertyChangedEventArgs e)
{
TreeView tree=作为TreeView的发送方;
TreeView项目=树。选择EdItem作为TreeView项目;
}

如果您正确使用MVVM方法,您应该在
treevieItem
TwoWay
(或
OneWayToSource
)模式下绑定
IsSelected
,并在ViewModels上查找此属性为真,其他所有内容都应该在那里

我将如何做的示例:

XAML(其中我的ViewModel上有一个名为
IsSelected
&
HeaderText
的属性,用于设置标题):


另一方面,如果视图支持,通过将
SingleOrDefault
更改为
Where
(或者如果需要,甚至
FirstOrDefault
),同样的技术还允许您拉取多个选项
private void item(object sender, RoutedPropertyChangedEventArgs<object> e)
    {
        string compteselectionne = Convert.ToString(TreeView.SelectedItem);
        if (compteselectionne=="Comptes")
        {
            ListeComptes.Visibility = Visibility.Visible;
        }
        ListeComptes.Visibility = Visibility.Hidden;
    }
private void item(object sender, RoutedPropertyChangedEventArgs<object> e)
{
    TreeView tree = sender as TreeView;
    TreeViewItem item = tree.SelectedItem as TreeViewItem;
}
<TreeView ItemsSource="{Binding MyCollectionOfItems}">
    <TreeView.Resources>
        <Style TargetType="{x:Type TreeViewItem}">
            <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
            <Setter Property="Header" Value="{Binding HeaderText}" />
        </Style>
    </TreeView.Resources>
</TreeView>
//null result of the following means there's no selection
var selectedItem = MyCollectionOfItems.SingleOrDefault(x => x.IsSelected)