从“模态窗口”(WPF / MVVM)添加新联系人时,从另一个类更新联系人列表

时间:2018-11-15 22:35:10

标签: c# wpf mvvm

我知道执行此操作的方法,但是我正在尝试找出使用MVVM和/或WPF准则执行此操作的“正确”方法。

所以基本上这是我的情况:

  • 我有一个Window(Customers),其中有一个客户列表,然后是一个列表框,显示该客户的联系人。
  • 我有一个名为“添加联系人”的按钮,它以模式的形式打开了一个新窗口(联系人),用户可以在其中输入新联系人并将其添加到数据库中。
  • 从“客户”窗口创建新的“联系人”窗口时,我将Customer_ID传递给构造函数。
  • 完成新联系人信息的添加后,他们将关闭“联系人”窗口,并且仍在“客户”窗口中。

我想知道的是,一旦他们按下“提交联系人”按钮并将新联系人保存到数据库中,将“新”联系人添加到“联系人”窗口中的ObservableCollection的“正确”方法是什么?客户窗口中的联系人(无需声明全局公共变量-显然我已经知道这一点)。

我正在使用MVVM,其中View模型包含公共/私有属性和集合,这些属性和集合绑定到Window本身的各种控件,而后面的代码实例化ViewModel的实例。

已解决的更新:我想为此打个招呼。基本上,我只是在Contact类型的子窗口中创建了一个公共委托,然后在父窗口中订阅了它,然后将通过委托传递的Contact添加到联系人列表中

1 个答案:

答案 0 :(得分:0)

我认为您对此太想了...

报告成功后,窗口应该通过方法调用提供新实例,或者应将各个属性设置为依赖项属性,并从这些属性创建新实例。两种方式都可以将新的实例副本添加到VM的可观察集合中并添加。

无需往返回数据库即可获取新值或整个对象列表。