c# - MVVM Light - subview 和对话框

标签 c# wpf windows-phone-7 mvvm mvvm-light

我正在尝试使用 MVVMLight 和 Windows Phone 7,到目前为止发现它相对容易。我无法理解的一件事是生成新的子窗口/ View 。例如:如果我想创建/导航到一个新 View 以允许用户编辑一个项目,然后在他们返回时从数据库中刷新项目列表,我是否应该为 View 的每次激活添加某种处理程序,或者我可以导航到编辑 View ,然后在 View 关闭时触发回调(调用 NavigationService.GoBack)。

最佳答案

我为此使用的是消息传递框架。让 MainViewModel 订阅应导致其刷新的消息,然后从子页面发出该消息。仍在内存中的 MainViewModel 将听到该消息并能够做出响应。我在我的博客上有一个示例 http://chriskoenig.net/2010/07/05/mvvm-light-messaging/ ,但请注意,您也可以创建自己的自定义消息(我个人一直这样做),然后手动提出它们:

// In MainViewModel
Messenger.Default.Register<ChildProcessCompleteMessage>(this, () => RefreshData());

// In ChildViewModel
Messenger.Default.Send<ChildProcessCompleteMessage>(new ChildProcessCompleteMessage());

我在我的应用程序中经常使用这种模式来实现 View 模型之间的通信。我不确定这是否完全回答了您的问题,所以如果您需要更多信息,请告诉我。

关于c# - MVVM Light - subview 和对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5554951/

相关文章:

c# - SCSF 中的异常处理

c# - 何时使用属性以及何时在内部类上使用内部变量的策略?

windows-phone-7 - WP7应用程序提交的简单易行的 list

c# - 将 WP7 游戏成就从 XNA 发布到 Facebook

c# - C#中按位与的逆运算是什么?

c# - 无法将 LINQ Query var 转换为 DataTable

c# - 如何通过拖动扩展窗口框架使 WPF 窗口可移动?

c# - WPF 编码的 UI 测试不会触发绑定(bind)属性的更改

c# - Viewmodel 在需要之前实例化

web-services - 为推送通知验证 Web 服务