我正在使用MVVM模式创建WPF应用程序。
在我的应用程序中,我有一个主窗口,它像应用程序的主模板一样工作。我在TreeView
中创建了UserControl
,就像菜单一样。
在主窗口中,所有演示文稿都托管在标签控件中,因此我TreeView
中的每个项目实际上都是一个新标签。
选项卡控件在主窗口中定义。
所以我的问题是,当TreeView
的事件处理程序位于TreeView
代码后面时,如何在当前选项卡控件中打开新选项卡(按UserControls
中的项目)文件而不是在主窗口文件中,所以我无法与它交互?
是否有可能以某种方式在主窗口的代码隐藏文件中托管TreeView
的事件处理程序?
答案 0 :(得分:1)
你应该可以做这样的事情
<强> Usercontrol.xaml 强>
<TreeView SelectedItemChanged="TreeViewHandler" />
<强> Usercontrol.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);
}
}
<强> Window.xaml 强>
<local:myUsercontrol TreeViewSelectedItemChanged="myHandler" />
<强> Window.cs 强>
private void myHandler(object sender, RoutedPropertyChangedEventArgs<object> e)
{
//Do stuff
}