WPF GridViewColumn值转换器错误

时间:2011-04-17 07:35:09

标签: wpf data-binding ivalueconverter

有人能告诉我这两种方法之间的区别是什么让你的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

知道我的第一种方法中缺少什么?

谢谢和问候, 阿德南

1 个答案:

答案 0 :(得分:0)

您的第二种方法是创建ActionIdConverter的新实例,而第一种方法是在资源中查找它。

要修复第一个代码段,请将转换器添加到父元素Resources部分,然后使用您提供的密钥引用它,例如:

<Window.Resources>
  <local:ActionIdConverter x:Key="ActionIdConverter" />
</Window.Resources>
<Image Source="{Binding Path=ActionId, Mode=OneWay, Converter={StaticResource ActionIdConverter}}" />

这样,您可以在多个位置重复使用相同的转换器实例,而不是每次都创建一个新的转换器实例。