如何将(静态)字典绑定到标签?
我有一个静态字典
class X { static Dictionary MyDict {get { ... }} }
此词典包含我想在网格控件中显示的数据:
1.)我不知道如何访问(在xaml中)字典
2.)我想将指定键的值绑定到Label的Content-Property。
这该怎么做?
您需要使用转换器 ,它允许您通过ConverterParameter
从Dictionary
提取您的值。
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 = ... } "