1

谁能告诉我根据 dbfield 值使您的 GridViewColumn 显示为图像的这两种方法有什么区别。

第一的

<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”上提供值引发了异常。 内部异常消息是找不到名为“local:ActionIdConverter”的资源。资源名称区分大小写。

但相同的转换器正在第二个工作

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

谢谢和问候, 阿德南

4

1 回答 1

0

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

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

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

这样,您可以在多个地方重用同一个转换器实例,而不是每次都创建一个新实例。

于 2011-04-17T08:09:18.853 回答