处理SelectedItemChanged TreeView

时间:2015-09-02 07:13:00

标签: c# wpf treeview

我试图获取TreeView的当前选择。我希望在我的MainWindow.xaml.cs中处理此问题,但TreeView实际上是在同一名称空间中名为Window1的另一个寡妇。我怎样才能做到这一点?这就是我到目前为止所拥有的:

WPF代码

<Window
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:LogHunter"
        xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
        xmlns:dxt="http://schemas.devexpress.com/winfx/2008/xaml/grid" x:Class="LogHunter.Window1"
        mc:Ignorable="d"
        xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
        dx:ThemeManager.Theme="DXStyle"
        Title="Window1" Height="750" Width="750">
    <Grid>
<TreeView x:Name="treeView" HorizontalAlignment="Left" VerticalAlignment="Top" Width="300" Height="Auto" SelectedItemChanged="clientChanged"/>


    </Grid>
</Window>

C#处理程序

public void clientChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
        {
            System.Diagnostics.Debug.WriteLine(e.OriginalSource);
        }

错误我

  

&#39;窗口1&#39;   不包含&#39; clientChanged&#39;的定义没有延伸   方法&#39; clientChanged&#39;接受类型&#39; Window1&#39;的第一个参数。   可以找到(你错过了使用指令或程序集   引用?)

1 个答案:

答案 0 :(得分:0)

您需要一种方法来共享两个Window之间的SelectedItem:

1)您可以使用MVVM并在Windows之间共享您的viewmodel。

2)你需要快速的东西:我想你是从MainWindow创建一个Window1的实例,你可以在你的MainWindow中做这样的事情:

  Window1 w1 = new Window1();

  w1.treeView.SelectedItemChanged += new RoutedPropertyChangedEventHandler<object>(treeView_SelectedItemChanged);

  w1.Show();

请记住在销毁Window1时分离此事件。