ResourceDictionary内でイベント的な処理を行う方法
直面した問題
自前で用意したCaptionButtonたちが操作されたときのイベントを拾った後、
処理がしたいが、CaptiionButtonのスタイルがResourceDictionary内に記述されている。
イベントを処理するハンドラを定義する場所をどうすればよいのかわからない。
背景
方法は
- ResourceDictionaryのコードビハインドを用意する
- ResourceDictionaryのViewModelを用意し、Commandを実装する
とかかなぁ?もし両方できても、理想はMVVM的に2番だなーと思って、実際にできるのか調査。
1.は、コードビハインドは実装が可能そうなことがわかった。
実際に、関連付けたコードビハインド(用意したResourceDictionaryクラスのPartialクラス)は用意でき、しっかり動くことを確認できた。
2.は、いろいろ調べたけどわからなかった。
ViewModelを設定することがわからなかった。
そもそも、ResourceDictionaryに書くような部分にイベントとかを仕込む思想が間違っているかもしれない。
(つまりResourceDictionaryというものには、コードビハインドもViewModelもあるべきではないのかもしれない)
機能自体は実装できたものの不完全燃焼。
XAML周り本当に難しい。