Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从另一个WPF窗口在WPF窗口上触发事件_C#_Wpf_Wpf Controls - Fatal编程技术网

C# 从另一个WPF窗口在WPF窗口上触发事件

C# 从另一个WPF窗口在WPF窗口上触发事件,c#,wpf,wpf-controls,C#,Wpf,Wpf Controls,我有两个WPF窗口: 主窗口 窗口1 在Window1中执行一些查询后,数据被提取并存储在Window1的列表中 我要达到的目标如下: 在Window1中的botton clck上,我希望主窗口的复选框控件被取消锁定 在Window1中单击botton时,我希望列表的数据加载到主窗口中的datagrd1中 考虑到#2,我试图在MainWindow中实现一个公共静态方法,并在Window1中的botton click中调用它,但问题是我可以在该方法中引用datagrid1。错误是:“无法引用非

我有两个WPF窗口:

  • 主窗口
  • 窗口1
在Window1中执行一些查询后,数据被提取并存储在Window1的列表中

我要达到的目标如下:

  • 在Window1中的botton clck上,我希望主窗口的复选框控件被取消锁定
  • 在Window1中单击botton时,我希望列表的数据加载到主窗口中的datagrd1中
  • 考虑到#2,我试图在MainWindow中实现一个公共静态方法,并在Window1中的botton click中调用它,但问题是我可以在该方法中引用datagrid1。错误是:“无法引用非静态字段datagrid1”

    有没有办法弹劾上述人士?
    谢谢…

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

    编辑
    使用我描述的技术将要求您以不同的方式解决问题,而不会使用现有代码解决问题。但我相信这比尝试使用静态方法和操作uielements要好,您可以使用数据绑定和mvvm实现这一点。有关使用这些技术在windows之间通信的简单应用程序,请参阅此处

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

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

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

    我无法推荐更好的方法,因为您的问题没有提供有关windows如何交互的更多信息,但这应该能满足您的需要。

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

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

    我无法提出更好的方法,因为你的问题没有提供多少关于windows如何交互的信息,但这应该会给你想要的。

    为什么会投反对票?你是说数据绑定和mvvm不能解决问题吗?发生错误是因为OP使用的是静态方法。我们不会在mvvm中使用它,而是使用ICommands。在对链接进行了少量检查后,我认为答案解决了我的问题。为什么会投反对票?你是说数据绑定和mvvm不能解决问题吗?发生错误是因为OP使用的是静态方法。我们不会在mvvm中使用它,而是使用ICommands。在对链接进行了少量检查后,我认为答案解决了我的问题。