Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.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-从window2刷新window1的数据网格_C#_Wpf - Fatal编程技术网

C# WPF-从window2刷新window1的数据网格

C# WPF-从window2刷新window1的数据网格,c#,wpf,C#,Wpf,使用实体框架myWPF主窗口显示来自SQLite数据库的数据。在myWPF主窗口中单击按钮1将打开一个新窗口(对话框),如下所示: Window2 MyWindow2 = new Window2(); MyWindow2.ShowDialog(); Window2中的按钮2单击事件执行一些数据库更改,新更改的数据需要显示在main窗口的DataGrid中。因此,当用户单击Window2的按钮2更新数据时,我需要刷新main窗口中的DataGrid问题:我们如何实现这一点?您不需要重新加载主窗口

使用
实体框架
my
WPF主窗口
显示来自
SQLite
数据库的数据。在my
WPF主窗口中单击按钮1将打开一个新窗口(对话框),如下所示:

Window2 MyWindow2 = new Window2();
MyWindow2.ShowDialog();

Window2
中的按钮2单击事件执行一些数据库更改,新更改的数据需要显示在
main窗口的
DataGrid
中。因此,当用户单击
Window2
的按钮2更新数据时,我需要刷新
main窗口中的
DataGrid
问题:我们如何实现这一点?

您不需要重新加载主窗口,只需使用委托和事件或属性将更新的数据从window2传递到主窗口即可。否则,当您启动主窗口时,会调用一些方法来绑定主窗口中的数据,并在关闭window2时调用相同的方法

Window2 MyWindow2 = new Window2();
MyWindow2.ShowDialog();
//Call here methods of data binding of main window.

我采纳了你的建议,效果很好(谢谢)。另外,我喜欢你的观点a)不需要重新加载主窗口:b)当你启动主窗口时,会调用一些方法来绑定主窗口中的数据,在关闭window2时调用相同的方法。我刚刚注意到,尽管
MyWindow2.ShowDialog()刷新数据时,它会创建窗口的新实例。因为它是父窗口,所以打开了同一窗口的两个实例。用户必须关闭其中一个实例。有没有办法不让同一窗口的两个实例同时打开?