我的主窗口上有一个用户控件,它是一个菜单。
当用户尝试在页面上编辑对象时,我想在用户处于编辑模式时禁用此用户控件,以使他们不会离开正在编辑的页面。
我无法从页面访问用户控件(放置在主窗口中)
用户控件名称-MenuView
下面的代码在页面的页面加载中
MainWindow mainWindow = new MainWindow();
mainWindow.MenuView.IsEnabled = false;
这似乎不起作用
答案 0 :(得分:1)
您需要获取对MainWindow
的现有实例的引用,而不是创建一个新实例。
如果您不关心MVVM,最简单的方法可能是使用静态Application.Current.Windows
或App.Current.MainWindow
属性:
MainWindow mainWindow = Application.Current.Windows.OfType<MainWindow>().FirstOrDefault();
if (mainWindow != null)
mainWindow.MenuView.IsEnabled = false;
请注意,这种方法确实会在类之间建立耦合,但是如果您从Page
类中访问窗口的字段,则这是不可避免的。
您可能想研究MVVM设计模式,但这是另一回事了。