2011-09-06 57 views
0

我尝试使用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不是)。

有没有人有一些想法如何在转换器中使用这种绑定?或者在资源中使用绑定是不可能的?

+0

请在'<转换器:MappingConverter ... />'附近提供一些代码。你如何将转换器绑定到'TextBlock'上? – WaltiD

+0

FromValue,ToValue,ElseMappingValue是依赖项属性,它的类型是对象。以下是有关MappingConverter的一些信息(http://wpfconverters.codeplex.com/wikipage?title=User%20Documentation#MapConverter)。我用这种方式: – Eyjafjallajokull

回答

0

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

在任何情况下,请查看Visual Studio的输出窗口,那里显示的绑定错误通常有助于查找问题。另见this article on debugging bindings

+0

我指定了一个绑定的来源,它工作的很好。非常感谢! – Eyjafjallajokull

0

这听起来像你的DataContext是不正确

我会建议使用像Snoop工具来找出你的DataContext是什么

+0

DataContext是正确的:其他TextBlock绑定相同的字符串不通过转换器显示正确的数据。 – Eyjafjallajokull

+0

@eyjafjallajokull我认为该转换器的DataContext可能是错误的,因为它是一个静态转换器。 – Rachel

+0

这听起来确实... – Eyjafjallajokull