2010-12-07 9 views
1

私はコンテキストが与えられたオブジェクトFooであるusercontrolを持っています。コンバーターでコンテキストを取得しますか?

私は、読み取り専用モードのテキストボックスを持っています。このモードでは、テキストはコンボボックスの選択値(双方向バインド)に応じて変化します。テキストボックスの値は、Fooの多くのフィールドの値を使用します。

今のところ、私はコンバータText="{Binding ComboboxValue, Converter={StaticResource MyTextConverter}}を書きました。コードビハインドは、ComboboxValueに従って、他の値のFooで構成される文字列を返す必要があります。問題は、コンバータのDataContextにアクセスできないため、渡すことができないことです。 パスなしでコンテキストをバインドすると(Text="{Binding Converter={StaticResource ConnectionStringTextConverter}}を使用)、コンボボックスの値が変更(通常)されるたびにトリガーされません。

だから、そうすることが可能ですか?または、コンボボックスのSelectedイベントを強制的に使用しますか?

おかげ

PS:実は、私は必要なものを私のDataContext上のテキストボックス(パスなし)のTextプロパティをバインドすることですが、私はたびにオブジェクト変更の特性変化を評価するために結合する必要があります。これは可能ですか?

+0

実際には、DataContext(パスなし)のテキストボックスのTextプロパティをバインドする必要がありますが、オブジェクトのプロパティ変更が変更されるたびにバインディングを評価する必要があります。これは可能ですか? –

+0

はいごめんなさい。質問に私のコメントをコピー/ペーストしています。 –

答えて

0

あなたはこのようDataContextProxyユーティリティクラスを使用することができます。

Text={Binding ComboBoxValue, Converter={StaticResource MyTextConverter}, ConverterParameter={StaticResource DataContextProxy}} 

してから、コンバータで変換パラメータを取得し、DataContextProxyにキャストし、そのDataSourceプロパティを使用します。

関連する問題