2011-07-31 3 views
0

特定の値を取得するために、私はViewModelにバインドしたビヘイビアを作成しました。動作のAssociatedオブジェクトがフォーカスを失ったときに、明示的にソースを更新したいのですが、ビヘイビアがフレームワーク要素ではないため、UpdateSourceを実行するバインディングにアクセスできません。 私は、コード内に新しいバインディングを作成することを考えましたが、それが参照を保持しているが、より良い方法があるかどうか疑問に思っていました。 アイデアバインディング - ビヘイビアを使用する場合のUpdateSource

ありがとうございます。

答えて

1

MVVMパターンまたはSilverlight 2.0では、バインディング式にアクセスできません。 シルバーライト3と4では、添付の動作に入る必要があります。添付された振る舞いはui要素を入力として受け取り、ui要素からそのバインディング式を取得できます。

 var bnexp = YourUIElement.GetBindingExpression(YourAttachedBehaviorClass.YourAttachedDependencyProperty); 
    bnexp.UpdateSource(); 

...これはこれは、WPFに働くかもしれないが、Silverlightは `GetBindingExpression`メソッドを持っていない

+0

を助けなら、私に教えてください。 – AnthonyWJones

+0

これはSilverlight 3に存在すると思います... http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.getbindingexpression%28vs.96%29.aspx –

+1

K、私はいませんでしたSilverlightには 'BindingOperations.GetBindingExpression'はありません。 Behaviorに言及されるOPは 'FrameworkElement'ではありません。 – AnthonyWJones

関連する問題