オブジェクトのディクショナリプロパティの値にバインドしたい。この値の辞書キーは、「{」で終わる文字列です。これをXAMLで表現するにはどうすればよいですか?
どういうわけかこのキャラクターを脱出する必要があると思います。
動作しないXAMLの例:
<TextBlock Text="{Binding Attribs[test{]}" />
これは、タイプのdatacontextAttribs
オブジェクトのプロパティです。IDictionary<string, object>
オブジェクトのディクショナリプロパティの値にバインドしたい。この値の辞書キーは、「{」で終わる文字列です。これをXAMLで表現するにはどうすればよいですか?
どういうわけかこのキャラクターを脱出する必要があると思います。
動作しないXAMLの例:
<TextBlock Text="{Binding Attribs[test{]}" />
これは、タイプのdatacontextAttribs
オブジェクトのプロパティです。IDictionary<string, object>
この XAML は、バインディング式の使用を避け、代わりに Binding 要素を使用することで機能します。
<TextBlock>
<TextBlock.Text><Binding Path="Attribs[test{]"/></TextBlock.Text>
</TextBlock>
次の XAML フラグメントをテストしたところ、問題なく動作するようです。
<TextBlock Text="{Binding Attribs[test\{]}"/>
\エスケープ文字については、この記事で説明しています。