MSDNは、イベントセッターについて次のように述べています。
イベントセッターは、テーマリソースディクショナリに含まれているスタイルでは使用できません。これは、実行時のテーマリソースディクショナリがルーズバイナリXAML(BAML)ファイルであることが多く、ハンドラーを定義する付随するコードビハインドが存在する可能性がある場所にスコープが定義されていないためです。
これは、このSOの質問に対する最初の回答によって確認されます。
リソースxamlにコードビハインドファイルを含めることはできません。通常、これらは「loosexaml」と呼ばれます。これについては、EventSetterに関するmsdnで読むことができます。
しかし、私はまだイベントセッターの制限を理解していません。リソースディクショナリにコードビハインドファイルを使用してみました。上記のリソースディクショナリのスタイル内で定義されたテンプレート内に含まれるコントロールのイベントにイベントハンドラーを割り当てましたが、機能しました。
一方、同じリソースディクショナリのスタイルにイベントセッターを追加すると、例外が発生します。
それがうまくいくという特別なケースにぶつかったことがありますか?
または、テンプレートでのイベントハンドラーの設定は常に機能しますが、機能する場合は、同じリソースディクショナリのスタイルでイベントセッターを使用できないのはなぜですか?
私の質問は要約すると:
テーマリソースディクショナリは多くの場合ルーズバイナリXAMLであるというMSDNのステートメントは、正確には何を意味しますか?どのくらいの頻度で、どのような状況で正確にですか?