【发布时间】:2013-02-03 06:19:47
【问题描述】:
在查看了一些 MVVM 工具包(MVVM Light、SimpleMVVM)之后,共同主题似乎尝试使用尽可能多的可混合事件而不是使用代码隐藏。
我不确定如何进行所有活动。例如,在执行 windows phone 7 时会绑定 2 个事件。
- OnNavigatedTo/From
- 加载中
有没有人有关于如何在 MVVM 中执行此操作的示例?我正在使用 SimpleMVVM,但我希望这些示例可能是相似的,也许 MVVM 轻量级工具包,甚至只是展示这点的一般 MVVM 教程可能会有所帮助。
我只找到了显示如何像按钮单击一样的操作。
编辑
我有点困惑何时使用事件背后的代码或使用混合事件来命令。
例如,在 MVVM Light 教程中,他们使用 MVVM 进行导航,但为什么这比使用代码隐藏事件更好?
现在别人说的时候我也有点糊涂了
代码隐藏并不邪恶;它是业务逻辑和代码隐藏的混合体 这是有问题的。让您的 UI 在代码隐藏中处理 UI 任务。
好吧,在 MVVM 轻量级示例中,当列表或其他任何内容(忘记)正在加载“加载标志出现”时,他们在其中一个示例中有“忙”。这一切都是在 ViewModel 中完成的,而不是代码隐藏事件。
所以这对我来说似乎有点矛盾(也许我错过了一些东西)。让我感到困惑的是,如果 ViewModel 对加载一无所知,你怎么知道加载何时开始或完成?
【问题讨论】:
-
EventToCommand 怎么样? Blend SDK 和 MVVM Light 都提供了这个实现。
-
你在想这个,但仍然不知道如何使用它。我也在读这篇文章。 blog.tonysneed.com/2011/07/22/…
-
您可以将 System.Windows.Interactivity 与 Windows-phone-7 一起使用吗?
-
代码隐藏并不邪恶;它的业务逻辑和代码隐藏的混合是有问题的。让您的 UI 在代码隐藏中处理 UI 任务。你的视图模型不应该知道你什么时候导航,或者你的 UI 元素什么时候加载。
-
您能否更详细地解释一下“视图模型不应该真正知道您何时导航”。我认为人们确实在 MVVM 中导航。我知道代码隐藏并不邪恶,但似乎第一选择是不使用它,因为它使测试变得更容易。
标签: windows-phone-7 mvvm mvvm-light simple-mvvm