Xaml バインディングが Silverlight の DependencyProperty に設定されていることを検出することは可能ですか?
たとえば、単一の依存関係プロパティを持つカスタム ユーザー コントロールと、次のように宣言されたバインディングがあるとします。
public class MyControl : UserControl
{
public static readonly DependencyProperty TestProperty =
DependencyProperty.Register("Test",
typeof(object), typeof(MyControl),
new PropertyMetadata(null));
public object Test
{
get { return GetValue(TestProperty); }
set { SetValue(TestProperty, value); }
}
}
<MyControl Test="{Binding APropInViewModel}>
</MyControl>
MyControl コードをこのようなものにすることはできますか?
// Ctor
public MyControl()
{
TestProperty.BindingChanged += new EventHandler(...)
}
たとえば、バインディングの通知を受け取ることはできますか?
ノート:
これは、ここで説明されているトリッキーな優先順位の問題を解決するためです。そのため、DependencyPropertyChanged ハンドラーで新しい値をチェックするだけでは機能しません。プロパティが変更されたハンドラーが起動しないためです!!