在ConverterParameter中使用字典中的String

时间:2013-02-19 10:41:00

标签: wpf xaml data-binding

我正在尝试使用字典中的String

<?xml version="1.0" encoding="utf-8" ?>
<Dictionary EnglishName="English" CultureName="English" Culture="en-US">
...
<Value Id="ButtonSuppressFieldInformation" 
       ToolTip="Remove field" Name="Remove field number "/>
...
</Dictionary>

在此ConverterParamter中启用多个语言支持:

<Button>
    ...
    <AutomationProperties.Name>
        <MultiBinding 
                Converter="{StaticResource IndexedForAutomationId}" 
                ConverterParameter="{loc:Translate 
                      Uid=ButtonSuppressFieldInformation, Default=Delete field}">
            <Binding RelativeSource="{RelativeSource Self}" />
            <Binding ElementName="MyContactDirectoryView" 
                     Path="ListConditionToSearch" />
        </MultiBinding >
    </AutomationProperties.Name>
</Button>

但唯一显示的是数字(IndexedForAutomationId),string没有出现。

使用string代替"{loc:Translate Uid=ButtonSuppressFieldInformation, Default=Delete field}"有效:

<MultiBinding Converter="{StaticResource IndexedForAutomationId}" 
              ConverterParameter="Delete field">

显示Delete field 0

loc:Translate用作ConverterParameter的方式是什么?

1 个答案:

答案 0 :(得分:1)

这个问题可能是由很多事情引起的,而一些代码在这里真的有帮助。但是,我会从Convert()转换器的IndexedForAutomationId方法的断点开始,1)检查是否从内部绑定中获得了预期的值,并检查转换器本身是否为从字典中返回正确的字符串。

请务必查看有关how to debug WPF bindings的这些指南。