有人能告诉我这两种方法之间的区别是什么让你的GridViewColumn根据dbfield值显示为图像。
第一
<Image Source="{Binding Path=ActionId, Mode=OneWay, Converter={StaticResource local:ActionIdConverter}}" />
第二
<Image>
<Image.Source>
<Binding Path="ActionId" Mode="OneWay">
<Binding.Converter>
<local:ActionIdConverter />
</Binding.Converter>
</Binding>
</Image.Source>
</Image>
第二种工作正常,但首先是给予
提供价值 'System.Windows.Markup.StaticResourceHolder' 抛出一个例外。 内部异常消息找不到名为的资源 '地方:ActionIdConverter'。资源 名称区分大小写。
但同样的转换器正在使用Second
知道我的第一种方法中缺少什么?
谢谢和问候, 阿德南
答案 0 :(得分:0)
您的第二种方法是创建ActionIdConverter
的新实例,而第一种方法是在资源中查找它。
要修复第一个代码段,请将转换器添加到父元素Resources
部分,然后使用您提供的密钥引用它,例如:
<Window.Resources>
<local:ActionIdConverter x:Key="ActionIdConverter" />
</Window.Resources>
<Image Source="{Binding Path=ActionId, Mode=OneWay, Converter={StaticResource ActionIdConverter}}" />
这样,您可以在多个位置重复使用相同的转换器实例,而不是每次都创建一个新的转换器实例。