如何将(静态)字典绑定到标签?

我有一个静态字典

class X { static Dictionary MyDict {get { ... }} } 

此词典包含我想在网格控件中显示的数据:

    

1.)我不知道如何访问(在xaml中)字典

2.)我想将指定键的值绑定到Label的Content-Property。

这该怎么做?

您需要使用转换器 ,它允许您通过ConverterParameterDictionary提取您的值。

 public class DictConverter: IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { Dictionary data = (Dictionary)value; String parameter = (String)parameter; return data[parameter]; } } 

XAML如下……

    Content="{Binding MyDictProperty, Converter={StaticResource MyDictConverter}, ConverterParameter=foo}" 

要访问Dictionary,您必须执行以下操作(如果您的DataContext不是X的实例):

       

要访问字典中的值,您的绑定必须如下所示:

  

您的绑定需要更改为以下内容:

 Content="{Binding Path=[foo], Source={x:Static local:X.MyDict}}" 

如果查看MSDN中的绑定路径 ,您将看到可以在XAML中指定字符串索引器。 local将是表示X所在的命名空间的xmlns。

我投票给Aaron转换器和Tobias索引器,但要实际访问静态字典 ,尝试在实例级别复制属性并绑定到

 // Code class X { protected static Dictionary StaticDict { get { ... } } public Dictionary InstanceDict { get { return StaticDict; } } } // Xaml Content="{Binding InstanceDict, Converter = ... } "