我最近使用了Expression Blend,我发现它有一个叫做Visual State Manager的东西,它与常规事件驱动模型有什么区别,哪个更好?
答案 0 :(得分:1)
事件是针对发生“事情”的事例,例如:
可视状态管理器用于管理控件的多个同时状态。
事件只是对侦听对象的回调,而状态是视觉状态,因此基本上用于完全不同的目的。事件可以触发状态更改,但这是唯一的重叠。
答案 1 :(得分:0)
对象触发事件以指示已发生某事。该事件携带任意有效负载(事件参数)加上(按惯例)发送事件的对象。视觉状态定义控件或用户控件的不同状态。视觉状态定义了控件的外观,它如何过渡到该外观,以及它如何从该外观过渡。 (“转换”可能涉及通过复杂动画切换可见性的任何内容。)视觉状态是控件的一部分,但您不能像事件一样直接订阅它们。
一种模式并不比另一种更好:它们完全不同。考虑在视图模型和模型/服务层中使用事件以及视图层中的可视状态。
答案 2 :(得分:0)
可视状态管理器用于管理状态(令人惊讶)。例如,您的按钮可以是多个状态:
您的代码并不需要了解它,因此应用程序的所有可视状态都应保留在XAML中。
此外,可视状态管理器有助于减少更容易出错的代码。
至于事件,事实上我现在更倾向于使用命令,我发现它们比事件本身更有用。