私のシナリオ: テキストボックスをオブジェクト(双方向)にバインドし、すべてのラベルをラベル翻訳を保持する辞書にバインドする、ビュー付きのSilverlightアプリケーションがあります。複数のソースからのバインド
私のアプローチは、ページのデータコンテキストを2つの項目を持つ辞書に設定することでした。その1つはオブジェクトであり、もう1つは翻訳辞書です。
は、XAMLでのコードは次のようになります。これは私がしかし、DataContextの上のオブジェクトを変更した場合、最初に、XAMLは、すべての変更について通知されていない作品と更新されません
<TextBlock Text="{Binding [dict].[name],FallbackValue='Fallback'}" />
<TextBox Text="{Binding [obj].name,Mode=TwoWay}" />
。
変換のためにConverterを使用していた実用的な解決策がありましたが、1つのコンバータパラメータの制限により、私は解決策が気に入らなかった。さらに、テキストブロックにフォールバック値を配置することはできませんでした。その結果、ページをデザインする際に「見えない」テキストブロックが発生しました。
この問題の解決方法に関するご提案はありますか?それは私の辞書を使用している必要はありません、それは(操作)オブジェクトにdatacontextを設定し、何とか別のラベルをバインドすることができますも大丈夫です。
を使用してのように、次の
更新あなたとあなたのオブジェクト/辞書へあなたのXAMLは、私は同じ解決策を考え出したと持ってきました答えにいくつかのサンプルコードを書いています。私は8時間の制限のために答えを投稿できませんでしたが、とにかくあなたの投稿に感謝します。 – Webfarmer