在映射转换器中绑定

时间:2011-09-06 13:50:37

标签: wpf xaml data-binding ivalueconverter

我尝试以这种方式使用MappingConverter(存在于我们的应用中并且工作得很好):

<converters:MappingConverter x:Key="RewardTypeToSymbolConverter"
                             ElseMappingValue="BlaBla">
    <converters:MappingEntry FromValue="{x:Static loc:SomeEnum.Value}"
                             ToValue="{Binding SomeStringInViewModel}" />
</converters:MappingConverter>

我没有例外,但我的TextBlock没有显示任何内容。转换器中的断点显示ToValue属性为NULL(但SomeStringInViewModel不是)。

有人知道如何在转换器中使用这样的绑定?或者在资源中使用绑定是不可能的?

3 个答案:

答案 0 :(得分:1)

由于转换器不在任何树中,ToValue的数据绑定将不起作用 看看Josh Smiths DataContext-Bridge-Pattern

答案 1 :(得分:0)

听起来你的DataContext不正确

我建议使用像Snoop这样的工具来弄清楚你的DataContext是什么

答案 2 :(得分:0)

转换器不在任何树中,无论是逻辑还是视觉。根本不应该有DataContext,如果你想进行任何类型的绑定,除了路径之外你应该指定一个源(RelativeSource当然不会工作)。

无论如何,看一下Visual Studio的输出窗口,那里显示的绑定错误经常有助于找到问题。另请参阅this article on debugging bindings