我在 WPF 上有两个窗口,比如说 window1 和 window2(这个应该是弹出窗口)。
我想要做的是,当单击弹出窗口(window2)中的按钮时,我想在window1中运行方法。我可以通过将 window1 传递给 windows2 来实现这一点,但我认为这不是一种节省内存的方式。
我有关于routedCommand的红色文章,但是很难理解。我正在使用 c# 并感谢任何帮助
谢谢
我在 WPF 上有两个窗口,比如说 window1 和 window2(这个应该是弹出窗口)。
我想要做的是,当单击弹出窗口(window2)中的按钮时,我想在window1中运行方法。我可以通过将 window1 传递给 windows2 来实现这一点,但我认为这不是一种节省内存的方式。
我有关于routedCommand的红色文章,但是很难理解。我正在使用 c# 并感谢任何帮助
谢谢
我经常Current
在我的MainViewModel
(或任何一个 ViewModel)上有一个静态属性,我在 ViewModel 的构造函数中设置了该属性。然后从应用程序中的任何其他地方,我可以得到对相关 ViewModel 的引用。
public MainViewModel()
{
Current = this;
}
public static MainViewModel Current { get; set; }
MainViewModel.Current.DoSomething();
路由命令通常是数据绑定的,因此命令逻辑取决于它写入的数据上下文。如果 Window1 的 DataContext 是 MainViewModel,而 Window2 的 DataContext 是 SecondViewModel,为了让 Window2 上的按钮在 MainViewModel 上执行命令,您必须引用 MainViewModel 的该实例作为相关按钮的 DataContext。