有没有办法让WPF自动将Converter应用于特定类型的所有绑定?
我看过this question,但它涵盖了不同的情况(本地化),因此没有令人满意的答案。
我的问题:我有一个包含Commands的模型类,我想把它绑定到WPF命令上。因为模型类是独立于工具包的,所以我不能在那里实现WPF的ICommand。相反,我有一个CommandConverter,它将CommandModels包装到WPF ICommands中:
<Button Command="{Binding MyCommand, Converter={StaticResource CommandConverter}}" />这工作得很好,除了很容易忘记Converter=,而且WPF不会给出任何绑定失败的指示。
我现在的问题是:是否有可能强制WPF总是将转换器应用于特定类型的绑定?或者,当命令绑定失败时,我如何让WPF给我适当的错误?
发布于 2009-06-12 16:51:23
我认为,如果没有子类化按钮(您可能不想这样做),或者定义自己的附加属性并在其上使用TypeConverter属性,您就不能做到这一点。
如果你想通过一个新的附加属性的TypeConverter属性来使用一个默认的转换器,你可以看看Rob Relyea的内容丰富的post here,或者MSDN here。
发布于 2009-06-14 12:34:06
虽然我从来没有这样做过,但有可能定义一个自定义标记扩展吗?这将导致值被发送到实现标记扩展的类,然后您可以从那里返回Command属性所期望的ICommand。
正如我所说的,我自己从来没有创建过一个,但是Google Search似乎会带来一些关于如何做到这一点的文章。
发布于 2009-06-12 14:30:29
检查调试输出窗口。通常,您可以在那里看到绑定错误。
https://stackoverflow.com/questions/985941
复制相似问题