将弹出窗口中的Notify按钮单击到wpf上的主窗口

时间:2013-04-22 12:27:49

标签: wpf notifications popup

我在WPF上有两个窗口,比如window1和window2(这个应该是弹出窗口)。

我想要做的是,当点击弹出窗口(window2)中的按钮时, 我想在window1中运行方法。 我可以通过将window1传递给windows2来实现这一点,但我认为这不是一种节省内存的方式。

我有关于routedCommand的红篇文章,但很难理解。 我正在研究c#,感谢任何帮助

谢谢

1 个答案:

答案 0 :(得分:1)

我的Current(或者任何ViewModel)上有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。