Bindingがしょぼいっす。Silverlight 4になってかなり良くなって困る事が大分少なくなってきましたが、たま〜にひっかかっちゃいます。具体的に言うとRelativeSourceが弱いです。Silverlightで使えるのは以下の2つだけ。
- TemplatedParent
- Self
RelativeSource マークアップ拡張機能(Silverlight)
WPFではこれに加えてFindAncestorというのも使えます(もう1つ使えるのがあるけど使ったこと無いです・・・)
RelativeSource のマークアップ拡張機能(WPF)
このFindAncestorというのは便利で自分から親へ親へ辿って行って、指定の型にたどり着いたら、そいつをバインドのソースとして使えます。どういうときに使うかと言うと実際に使った例が以下のページにあります。
ListBoxの項目がダブルクリックされたらViewModelのCommand(or メソッド)を呼ぶ
今、ふとこれをSilverlightでやるとしたらどうやるんだろう??と思ってなんとなくエントリを起こしてみました。備忘録ということで。