2012-10-12 2 views
6

コードビハインドから明示的に実装されたインターフェイスプロパティへのバインディングを設定しようとしています。コードビハインドバインディングの理由は、バインドされたプロパティへのパスが実行時にしか決定できないためです。同様の方法で動作コードビハインドに結合WPF - コードビハインド/アタッチされた動作から明示的に実装されたインターフェイスプロパティへのバインド

<TextBox Text="{Binding (local:IViewModel.Property)}"/> 

実際に、(MainWindow.xaml.csから:XAMLで

、以下のようなものを結合すること(MainWindow.xamlの例)ことが可能です):

var binding = new Binding("(local:IViewModel.Property)"); 

WPFが名前空間マッピングを取得できるためです。

私の質問は、名前空間マッピングが存在しない場合(たとえば、接続された動作)、このようなバインディングをどのように形成するのですか?

事前に感謝します。

上記 PropertyPathに渡される構文の詳細については
var propertyInfo = typeof(IViewModel).GetProperty("Property"); 
var propertyPath = new PropertyPath("(0)", propertyInfo); 
var binding = new Binding 
{ 
    Path = propertyPath 
}; 

PropertyPath.Pathを参照してください。PropertyPathフル

答えて

9

は、次のように指定します。

+0

パーフェクト!チャーム – mickeyt

+0

+1のように動作します。この特殊な種類の索引付けのための構文参照へのリンクを投稿してください。私はそれを以前見たことがなく、[PropertyPath XAML構文](http://msdn.microsoft.com/en-us/library/ms742451.aspx)MSDNの記事でそれを見つけることができません。常に '[]'を使わなければならないと考えました。 – Clemens

+1

@クレメンス:OK、更新されました。 –

関連する問題