我尝试以这种方式使用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 :(得分:1)
由于转换器不在任何树中,ToValue
的数据绑定将不起作用
看看Josh Smiths DataContext-Bridge-Pattern。
答案 1 :(得分:0)
听起来你的DataContext不正确
我建议使用像Snoop这样的工具来弄清楚你的DataContext是什么
答案 2 :(得分:0)
转换器不在任何树中,无论是逻辑还是视觉。根本不应该有DataContext,如果你想进行任何类型的绑定,除了路径之外你应该指定一个源(RelativeSource
当然不会工作)。
无论如何,看一下Visual Studio的输出窗口,那里显示的绑定错误经常有助于找到问题。另请参阅this article on debugging bindings。