DictKey
アイテムのキーを保持するプロパティがあると思います。辞書プロパティへの最初のバインディングと、項目のキーを持つプロパティへの 2 番目のバインディングを使用MultiBinding
および設定できます。
<TextBlock FontSize="13" Width="200" Height="30">
<TextBlock.Text>
<MultiBinding>
<MultiBinding.Converter>
<local:DictionaryItemConverter/>
</MultiBinding.Converter>
<Binding Path="MyDict"/>
<Binding Path="DictKey"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
コンバーターは両方の値を使用して、辞書から項目を読み取ります。
public class DictionaryItemConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (values != null && values.Length >= 2)
{
var myDict = values[0] as IDictionary;
var myKey = values[1] as string;
if (myDict != null && myKey != null)
{
//the automatic conversion from Uri to string doesn't work
//return myDict[myKey];
return myDict[myKey].ToString();
}
}
return Binding.DoNothing;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotSupportedException();
}
}