0

ViewModelにLostFocusというプロパティがあり、これがいつ変更されるかをビューに知らせて、必要に応じてこの情報に基づいて動作できるようにします(つまり、LostFocusがtrueに設定されている場合、ビューの設計者がビューをぼかしてしまう可能性があります。または多分彼らは何もしません)。

私はCaliburn.Microを使用しているので、ここで知っておくべき機能がある場合は教えてください。それ以外の場合は、MVVM方式でこれをどのように実行しますか?

4

2 に答える 2

1

私が理解しているように、これは通常のデータバインディングで実現できます。Caliburn.Microを使用しているため、設計者は規則を使用してバインディングを実行できます。たとえば、LostFocusがtrueに設定されているときにチェックされるビューにチェックボックスコントロールがある場合、設計者はチェックボックスのNameプロパティがLostFocusに設定されていることを確認するだけで、Caliburnが設定されます。自動的にバインドします。

また、ビューモデルで、LostFocusの値を変更するときに、プロパティ変更通知イベントを発生させるようにしてください。

LostFocusプロパティを使用する代わりに、ビューモデルにLostFocusイベントを作成することもできます。次に、適切と思われるときにこのイベントを発生させることができます。その後、ビュー上で、デザイナーはイベントトリガーとトリガーアクションを使用してそれに応答できます。たとえば、私のプロジェクトの1つで、ビューモデルのActivatedイベントに応答するイベントトリガーを設定してから、ビューのイントロアニメーションの実行を担当するストーリーボードを再生するカスタムトリガーアクションを作成しました。このアプローチはCaliburn.Microに限定されていませんが、Caliburn.Microプロジェクトで使用したので、間違いなく機能します。

于 2013-01-29T12:54:47.447 に答える
0

最終的にBindingConverterについて学習し、それを使用してfalseのブールプロパティをnullに変換し、trueをBlurEffectに変換しました。

于 2013-01-29T14:10:16.613 に答える