gpt4 book ai didi

c# - 如何对MainWindow使用UserControl事件

转载 作者:行者123 更新时间:2023-12-03 10:37:50 26 4
gpt4 key购买 nike

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

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

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

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

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

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

最佳答案

你应该能够做这样的事情

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
}

关于c# - 如何对MainWindow使用UserControl事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19093234/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com