0

我有 2 个 WPF 窗口:

  • 主窗口
  • 窗口1

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

我要实现的目标如下:

  1. 在 Window1 中的 botton clck 上,我希望 MainWindow 的复选框控件被取消选中
  2. 在 Window1 中单击按钮时,我希望将 List 的数据加载到 MainWindow 的 datagrd1 中

考虑到#2,我尝试在 MainWindow 中引入一个公共静态方法,并在 Window1 中通过按钮单击调用它,但问题是我可以在该方法中引用 datagrid1。错误是:“无法在非静态字段 datagrid1 上引用”。

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

4

2 回答 2

3

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

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

我无法提出更好的方法,因为您的问题没有提供有关窗口如何交互的太多信息,但这应该可以满足您的需求。

于 2013-03-16T12:00:03.857 回答
2

您可以使用数据绑定和 mvvm 来实现这一点。有关使用这些技术在窗口之间进行通信的简单应用程序,请参阅此处。

从子用户控件绑定的 MVVM 主窗口控件

编辑 使用我描述的技术将要求您以不同的方式解决您的问题,并且不会用您现有的代码解决问题。但我相信这比尝试使用静态方法和操作 uielements 要好

于 2013-03-16T11:48:02.607 回答