绑定到字典-使用键';(';
本文关键字:字典 绑定 | 更新日期: 2023-09-27 18:26:24
我的数据模板看起来像:
<DataTemplate>
<TextBlock DataContext="{Binding Fields[ABC]}" Text="{Binding}"/>
</DataTemplate>
<DataTemplate>
<TextBlock DataContext="{Binding Fields[)]}" Text="{Binding}"/>
</DataTemplate>
对于一个看起来像的类
class Source {
public Dictionary<string, string> Fields { get; private set; }
}
当在DataContext绑定中使用")"键应用第二个模板时,我会得到一个XamlParseException。是否有任何方法允许Dictionary Binding与其他字符串(如")")一起使用?某种转义符序列?
您可以通过使用路径参数来构造一个有效的路径,这可以确保括号是作为字符串而不是路径描述的一部分传递的。最简单的方法可能是通过自定义标记扩展,如我的答案所示。
绑定可以写成:
{Binding Path={me:PathConstructor Fields[(0)],')'}}
(括号周围的引号是可选的,但我认为它更可读)