1

我正在使用 MVVM 模式创建一个 WPF 应用程序。

在我的应用程序中,我有一个类似于应用程序主模板的主窗口。我创建了一个像菜单一样工作的TreeViewin a 。UserControl

在主窗口中,所有演示文稿都托管在选项卡控件中,因此我TreeView的每个项目实际上都是一个新选项卡。

选项卡控件在主窗口中定义。

TreeView所以我的问题是,当我的事件处理程序TreeView位于代码隐藏文件而不是主窗口文件中时,我如何在当前选项卡控件中打开一个新选项卡(从 中按一个项目) UserControls,因此我无法与之交互?

是否有可能以某种方式TreeView在主窗口的代码隐藏文件中托管事件处理程序?

4

1 回答 1

1

你应该能够做这样的事情

用户控件.xaml

<TreeView SelectedItemChanged="TreeViewHandler" />

用户控件.cs

public delegate void TreeViewSelectedItemHandler(object sender, RoutedPropertyChangedEventArgs<object> e);
public event TreeViewSelectedItemHandler TreeViewSelectedItemChanged;

private void TreeViewHandler(object sender, RoutedPropertyChangedEventArgs<object> e)
{
    //Capture event from usercontrol and execute defined event
    if (TreeViewSelectedItemChanged != null)
    {
        TreeViewSelectedItemChanged(sender, e);
    }
}

窗口.xaml

<local:myUsercontrol TreeViewSelectedItemChanged="myHandler" />

窗口.cs

private void myHandler(object sender, RoutedPropertyChangedEventArgs<object> e)
{
    //Do stuff
}
于 2013-09-30T12:26:35.463 回答