TreeView在双击事件中选择Root作为selectedItem

时间:2013-04-30 09:12:59

标签: c# wpf mvvm treeview

我正在使用树视图控件处理WPF应用程序。我创建了双击事件的事件。但每当我双击TreeViewItem根元素时,

这是XAML

<HierarchicalDataTemplate x:Key="TreeViewItem" ItemsSource="{Binding Children}">
    <StackPanel Orientation="Horizontal">
        <TextBlock Margin="2" Text="{Binding Name}" />
    </StackPanel>
</HierarchicalDataTemplate>
<TreeView 
    ItemTemplate="{StaticResource TreeViewItem}"
    ItemsSource="{Binding Hosts}"
    MouseDoubleClick="TreeView_MouseDoubleClick">

这是我背后的代码。

private void TreeView_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    var selectedItem = sender.SelectedItem;
}

这是我的TreeView结构示例

CountryA
    CityA
         Street1
         Street2
    CityB
         Street3
CountryB
    CityC

现在如果我双击Street1,那么在事件处理程序sender.SelectedItem是CountryA。如果我双击CityA或CityB,也会发生同样的情况。有什么问题?

1 个答案:

答案 0 :(得分:0)

这对我有用,举个例子就像你描述的一样简单。 我不得不为发件人添加一个演员,或者它不会编译。

var selectedItem = (sender as TreeView).SelectedItem;

如果您这样做,那么问题必定在其他地方。您的代码中还有其他可能是问题根源的其他内容吗?