【问题标题】:Where and how should selected items be managed in a MVVM architecture?在 MVVM 架构中应在何处以及如何管理选定的项目?
【发布时间】:2011-03-06 07:48:34
【问题描述】:

我有一个视图允许用户选择一些数据:例如一些日期,并执行需要这些数据的命令。

所以在我的命令中,我应该有一个对所选日期的引用,但是让这个日期转到命令所在的 ViewModel 端的最佳做法是什么:

  • 在 ViewModel 中添加 SelectedDate 依赖属性并绑定我的视图,并通过“@this.SelectedDate”在我的命令中引用它(@this 是对当前 ViewModel 的引用),
  • 让视图通过命令的“Execute”方法的“参数”传递,用“DateTime selectedDate = (DateTime)parameter;”引用日期,
  • 任何其他解决方案...

提前致谢。

【问题讨论】:

    标签: wpf mvvm command selection


    【解决方案1】:

    我绝对会让SelectedDate 成为视图模型的依赖属性。

    我还会让命令从视图模型中获取SelectedDate。视图没有理由对此有所了解。

    【讨论】:

    • 感谢您的贡献。看来DP解决方案绝对是最好的。
    【解决方案2】:

    对于第一部分,是的,我认为 SelectedDate 应该是您的 ViewModel 的 (INotify) 属性。

    我对你的指挥部应该从哪里获得这些信息没有强烈的意见,我认为该属性是可以的。

    【讨论】:

    • 感谢您的意见。对我来说,DP 方法的主要优点是简单:视图只是填充 DP,命令可以直接访问其数据。使用第二种方法,视图必须“序列化”数据以检查命令状态并执行命令,并且命令必须在其一侧“反序列化”数据。
    【解决方案3】:

    WPF Application Framework (WAF)BookLibrary 示例应用程序展示了一种使用 MVVM 处理选定项目的方法:ViewModel 具有绑定到查看。

    【讨论】:

    • 感谢这个有趣的输入,它证实了上述断言。
    猜你喜欢
    • 1970-01-01
    • 2023-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-26
    • 1970-01-01
    • 2016-11-19
    • 1970-01-01
    相关资源
    最近更新 更多