怎么可能?我们的想法是将信息输入到弹出/子窗口内的表单中,然后,当您保存/关闭它时,它会自动更新弹出窗口最初打开的“父”窗口。
请建议,
由于
答案 0 :(得分: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
}
}
答案 1 :(得分:0)
希望你有一个用于子窗口的ViewModel。它将在ChildWindow中更改所有数据。因此,当您关闭窗口时,将相应的模型保存到数据库并再次从数据库加载MainWindowView模型集合。
答案 2 :(得分:0)
在我的应用程序中,我有一个Singleton对象来保存此事件:
Public Event DataChanged(ByVal EntityChanged As String,
ByVal IDChanged As Integer)
保存或删除记录时,会引发事件(在这种情况下,通过弹出窗口)
因此,您只需在父窗口(或任何其他窗口)中执行此操作即可订阅事件,并在引发事件时刷新数据。您可以检查EntityChanged参数(产品,订单,客户等)和ID以查看是否必须刷新。