在WPF MVVM中使用行为?

时间:2012-05-21 10:24:10

标签: wpf mvvm

我是WPF MVVM的新手。有人清除WPF中MVVM应用程序中的行为用法吗?为什么我们应该去行为,即使我们在WPF MVVM中有方法操作?

3 个答案:

答案 0 :(得分:6)

行为是您附加到元素的事物,并指定应用程序何时应该响应。

Action附加到行为上,并定义应用程序在触发行为时应该执行的操作。

From this article:

  

乍一看,行为看起来与行动类似:一个独立的行为   功能单位。主要区别在于行动期望   被调用,并且在被调用时,它们将执行一些操作。一个   行为没有调用的概念;相反,它起作用   更多作为对象的附加组件:可选的可选功能   如果需要,附加到对象。它可能做某些事情作为回应   从环境刺激,但不能保证   用户可以控制这种刺激是什么:它取决于行为   作者确定可以和不可以定制的内容。

And from this article

  

使用行为可以封装多个相关或依赖的活动   在单个可重复使用的单元中加上状态。

答案 1 :(得分:0)

在MVVM中,如果ViewModel公开方法而不是命令,则可能需要从View调用方法。行为允许这样做。

您声明“我们在WPF MVVM中有方法操作”,但据我所知,“方法操作”不是WPF的一部分。如果您正在使用辅助MVVM库,它可能会提供“方法操作”,可以将方法封装在命令中。在这种情况下,使用方法的MVVM模式不需要行为。

但请注意,这些行为在MVVM之外还有其他用途。

答案 2 :(得分:0)

我强烈建议您阅读此code project article 演示
- 什么是附加行为
- 它的替代品是什么? - 与类似问题的替代解决方案相比,它具有优势

  

我们的想法是在元素上设置附加属性,以便您可以从暴露附加属性的类中访问该元素。一旦该类可以访问该元素,它就可以在其上挂钩事件,并且为了响应这些事件触发,使元素执行通常不会执行的操作。它是创建和使用子类的一种非常方便的替代方法,并且非常适合XAML。

上述文章的结论

  

在对象上挂钩事件并在触发时执行某些操作   当然不是一个突破性的创新,任何一段时间   想像力。从这个意义上讲,附加行为只是另一种方式   做同样的旧事。但是,这种技术的重要性在于   它有一个名字,这可能是任何一个最重要的方面   设计模式。此外,您还可以创建附加的行为和   将它们应用于任何元素而无需修改任何其他部分   系统。它是解决Pascal引发的问题的一个干净的解决方案   Binggeli,以及许多其他问题。这是一个非常有用的工具   有你的工具箱。