2012-01-31 6 views
0

私は基本的に、私のロジックをビューモデルに完全に分離することができました。私はボタンとボタンに適用することができる2つの異なるテンプレートを持っています。基本的に、オーディオが再生されているときに、1つのテンプレートが表示され、それ以外のテンプレートが表示されます。私がこのコードを使用していたとき、私はこのページのリソースにアクセスでき、それに応じて必要なのはそれだけで済むから、簡単でした。今では私のコードはVMにありますが、テンプレートをどのように変更するかはわかりません。WP7のビューモデルからコントロールテンプレートを変更するにはどうすればよいですか?

最初に思いつくのは、必要に応じてビューを変更するメッセージを送信することです。これが唯一の方法ですか? WPFにはトリガがあり、メッセージを送信する必要がなく、コードがコードの背後に配置されていないため、かなりうまく見えることがわかりました。誰かがこれのための回避策を見つけましたか?

答えて

1

おそらくpublic bool IsPlayingプロパティを見て、それを適切なテンプレートに変換するValueConverterと書くことができます。次に、ButtonテンプレートプロパティをIsPlayingプロパティにデータバインドし、コンバータをトランスレータとして使用することができます。

テンプレートでこれを試したことはありませんが、私はBitmapVisibilityで大成功を収めていますので、ここでもうまくいくと思います。

これは、前に1つも使用していない場合はgood intro to ValueConverterです。

つまり、メッセージングは​​このような恐ろしい解決策ではありません。場合によっては、コードビハインドファイルに保存したいだけのコードがあります。アニメーションの開始/停止コードは別の例です。

関連する問題