【发布时间】:2010-11-10 11:11:51
【问题描述】:
这是经常出现的情况:
在视图中,您有一个绑定到 ViewModel 属性的控件(由 INotifyPropertyChanged 支持)。例如:
<TextBlock Text="{Binding Path=Subtotal}"/>
当属性发生变化时,你需要通过一些创意动画来引起用户的注意。我如何利用视图已经连接到通知的事实并避免创建大量额外代码(或至少创建一次并重复使用)。数据触发器可能是最好的选择,但我不知道如何让它们触发任何值更改而不是某个特定值。
想到以下选项:
- 在 ViewModel 中引发附加事件,在 View 代码隐藏中订阅。
- 使用转换器创建绑定到提到的属性的数据触发器,如果值发生变化,该转换器将返回 true。
- 创建一个绑定到 ViewModel 上的新布尔属性的数据触发器,该属性用于“发出”更改的“信号”。
- 创建附加到控件的行为,该行为将订阅控件的依赖属性更改并启动动画。
你喜欢/使用哪一个?我错过了任何选项吗?
附:如果解决方案能够提供先启动动画并在动画结束时反映值变化的可能性,那就太好了(但不是关键)。
【问题讨论】:
标签: wpf data-binding animation mvvm storyboard