Resources の中で定義する要素のプロパティで binding を使いたいのですがうまく行きません。
このような感じです。(ここでは Converter ですが、 Converter に限らずです。)
xaml
1... 2<Window.Resources> 3 <local:myConverter x:Key="conv" prop="{Binding val1}"/> 4</Window.Resources> 5... 6<Label Content="{Binding val2,Converter={StaticResource conv}}" /> 7...
例外で止まるというわけではなく binding のエラーがコンソールに出ていて動いていないという状態です。
エラーコードは 2 で Cannot find governing FrameworkElement ...
というやつです。
これは DataContext が設定されてないとでるものなようで、単純な binding に対して DataContext を設定しないで実行するとこのエラーが出て、DataContext を設定すればエラーは出なくなりました。
なので、Resources 内だと DataContext を見てくれないのが原因かと思い、DataTemplate でやるような、Window に Name をつけて、Resources 内の binding の ElementName
にそれを指定し、Path を DataContext.val1
としました。(Window.DataContext に viewmodel のインスタンスを設定してます。)
ですが、動かないのは変わらずです。
Resources 内で binding することは不可能なのでしょうか?
参照するときに StaticResoruce とするので static なものとなっているのかと思うのですが、それが原因で binding ができないのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/11 06:03
2016/08/16 12:31