wpf - 在 WPF 中从 ViewModel 调用 View 的最佳实践

标签 wpf mvvm

我正在寻找一个 wpf 项目的小例子,其中包含在 View 之间导航的最佳实践。也许使用框架 MVVM Light 和 NavigationService 或 ServiceLocator。而不是从 ViewModel 调用 View,你是怎么做的呢?你的方法如何?您有项目示例吗?

最佳答案

我更喜欢 ViewModel 第一种方法。这意味着导航服务将 View 模型作为参数,然后根据命名约定,创建 View 实例并将其加载到框架中。

navigationService.Navigate<SomePageViewModel>()

这与基于 URI 的导航相比有几个优点,后者是 View 优先的方法:
  • 更好的可测试性
  • 依赖注入(inject)的可能性
  • 最重要的是:更好的可维护性。如果您重命名或移动页面,则在修复它之前不会编译,这与 URI 不同。 Uri 会在运行时抛出错误

  • 不幸的是,我现在不能给你我的示例项目,但是实现你自己的很容易

    关于wpf - 在 WPF 中从 ViewModel 调用 View 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28916027/

    相关文章:

    c# - 获取 WPF UIElement 的左上角坐标

    c# - Prism 5 - MVVM 框架

    c# - 如何通过在页面上显示半透明控件来禁用Windows Phone上的所有控件?

    c# - 在代码隐藏文件中设置报表查看器的 rdlc 文件的相对路径

    c# - 文本 block 和标签 wpf 上的文本选择

    c# - 用户添加新行时无法触发 WPF 验证器

    wpf - 如何在 MVVM 中将标志枚举绑定(bind)到 ListBox

    c# - 自动更新设置为属性的字典值

    WPF/MVVMDo 我在使用 ViewModelLocator 时需要像 Unity/LightCore 这样的依赖项注入(inject)工具

    c# - 如何有效地将一个可观察集合中的范围选择到另一个可观察集合中