来自另一个WPF窗口的WPF窗口上的触发事件

时间:2013-03-16 11:40:39

标签: c# wpf wpf-controls

我有2个WPF Windows:

  • 主窗口
  • 窗口1

在Window1中执行一些查询后,数据被提取并存储在Window1的List中

我要做的是以下内容:

  1. 在Window1中的botton clck上,我想要一个MainWindow的复选框控件来解决问题
  2. 点击Window1中的botton,我希望List的数据加载到MainWindow的datagrd1中
  3. 考虑到#2,我试图在MainWindow中阻止一个公共静态方法,并从Window1中单击调用它,但问题是我可以在该方法中引用datagrid1。错误是:“无法引用非静态字段datagrid1”。

    有没有办法实现上述目标? 谢谢......

2 个答案:

答案 0 :(得分:2)

您可以使用数据绑定和mvvm实现此目的。请参阅此处,了解使用这些技术在Windows之间进行通信的简单应用程序。

MVVM Main window control bind from child user control

修改 使用我描述的技术将要求您以不同的方式解决您的问题,并且无法解决现有代码的问题。但我相信这比尝试使用静态方法和操纵元素更好

答案 1 :(得分:2)

您可以获取MainWindow的当前实例:

MainWindow main = (MainWindow)Application.Current.MainWindow; 

我不能建议一个更好的方法,因为你的问题没有提供关于窗口如何交互的大量信息,但这应该给你你想要的。