2

怎么可能?这个想法是将信息输入到弹出/子窗口内的表单中,然后,当您保存/关闭它时,它会自动更新最初打开弹出窗口的“父”窗口。

请建议,

谢谢

4

3 回答 3

1

这是在 MVVM Light 中使用 Messenger 类的完美理由。创建 NotificationMessage 以向主视图模型发送更新命令。

    public MainWindowViewModel()
    {
        if ((IsInDesignMode))
        {
        }
        // Code runs in Blend --> create design time data.
        else
        {
            // Code runs "for real"
            Messenger.Default.Register<NotificationMessage<string>>(this, new System.Action<NotificationMessage<string>>(NotificationMessageHandler));

        }
    }

    private void NotificationMessageHandler(NotificationMessage<string> sender)
    {
        if ((sender.Notification == "refreshData"))
        {
            // Do something here
        }
    }
于 2010-07-11T22:00:51.763 回答
0

希望您将拥有子窗口的 ViewModel。它将在 ChildWindow 中更改所有数据。因此,当您关闭窗口时,将相应的模型保存到数据库并再次从数据库加载您的 MainWindowView 模型集合。

于 2010-07-09T09:45:34.273 回答
0

在我的应用程序中,我有一个包含此事件的 Singleton 对象:

Public Event DataChanged(ByVal EntityChanged As String, 
                               ByVal IDChanged As Integer)

保存或删除记录时,会引发事件(在这种情况下,通过弹出窗口)

因此,您在父窗口(或任何其他窗口)中所要做的就是订阅事件,并在引发事件时刷新数据。您可以检查 EntityChanged 参数(产品、订单、客户等)和 ID 以查看是否必须刷新。

于 2010-07-09T13:52:16.167 回答