【发布时间】:2011-12-02 11:32:44
【问题描述】:
我正在使用模块、MVVM 等开发 PRISM 应用程序。我现在非常了解 PRISM,并且我了解 MVVM 的价值。所有这些都有助于提供来自可测试性、“一致性”等的商业价值。
但现在我遇到了某些交互问题。我已经花了好几个小时试图了解我是如何通过 MVVM 在 Silverlight 中设置焦点的。所有这些额外的行为、附加的属性、触发器。看起来就像一堆垃圾代码,MVVM 是根本原因。
例如,我需要创建查找控件,它基本上是带有按钮和弹出窗口的文本框。这个控件本身需要很多焦点控制,它需要覆盖父视图(弹出窗口)等等。使用代码隐藏创建它似乎很容易,将其粘贴到单独的库中并继续前进。我的业务表单将在我漂亮的 MVVM PRISM 中使用此控件。
所以,问题是.. 在像控件这样的孤岛中使用代码隐藏并为带来业务价值的实际代码保留 MVVM 和 TDD 是否合理?
有没有你说“这里不会使用 MVVM”的行?
【问题讨论】:
-
请教,业务逻辑对焦点有什么了解?焦点是视图的范围。你要一条线;没有容易定义的线。你要问自己,“这是业务逻辑还是显示逻辑?”没有人能告诉你如何在每种情况下都知道这个问题的答案,你必须自己弄清楚。
-
@Will 当我想到业务逻辑时——大部分都在我模型上的验证器中。我的虚拟机只是丰富的模型和视图之间的一个垫片。通过使用 VM,我从 View 中抽象出数据访问。我正在为模型使用 DevForce,它几乎可以处理其他事情..
标签: wpf silverlight xaml mvvm