これは頻繁に発生する状況です。バインドされた値が変更されたときにアニメーションを開始する最善の方法は何ですか?
ビューでは、ViewModelプロパティ(INotifyPropertyChangedを基にしたもの)にバインドされたコントロールがあります。例:
<TextBlock Text="{Binding Path=Subtotal}"/>
プロパティが変更されると、クリエイティブなアニメーションでユーザーに注意を促す必要があります。ビューがすでに通知に接続されており、余分なコードを大量に作成しないようにする(または少なくとも1回作成して再利用する)ということをどのように利用できるのか。データトリガーがおそらく最良の選択ですが、私はどのような値の変化に対していくつかの特定の値に対して発火させる方法を知らない。
次のオプションが頭に浮かぶ:
- コードビハインドビューに加入し、ViewModelにで追加イベントを発生させます。
- 値が変更されている場合はtrueを返すコンバーターを使用して、前述のプロパティにバインドされたdatatriggerを作成します。
- 変更を「通知」するために使用されるViewModelの新しいブール値プロパティにバインドされたdatatriggerを作成します。
- コントロールに関連付けられたビヘイビアを作成して、コントロールの依存関係プロパティの変更をサブスクライブし、アニメーションを開始します。
どちらが好きですか/使用しますか?私はオプションを忘れましたか?
P.S.解が最初にアニメーションを開始し、終了時に値の変化を反映する可能性がある場合は、いいです(しかし重要ではありません)。
' 'はどこから来たのですか?私はそれがBlendと一緒に出荷されると思っています。ノンブレッドユーザーが利用できるのですか?私は同じことを自分のコードで達成したいと思いますが、これを必要とする多くのインスタンスがあるので、あまり冗長ではないソリューションが存在することを願っています。たぶんそれはスタイルを介して可能です... –