4

XAML我尝试使用的页面内IValueConverter,它会引发错误。

  • IValueConverter另一个程序集中,我添加了一个参考
  • 没有设计时错误
  • 我已经为 StaticResource 分配了 ResourceKey

在我的页面顶部,我有这个:

xmlns:converters="clr-namespace:Converters;assembly=Converters"

<Page.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Styles/DialogStyles.xaml" />
        </ResourceDictionary.MergedDictionaries>
        <converters:NoWhiteSpaceConverter x:Key="NoWhiteSpaceConverter" />
    </ResourceDictionary>
</Page.Resources>

然后我尝试稍后像这样使用它:

<TextBox Text="{Binding SomeText, Converter={StaticResource NoWhiteSpaceConverter}}" />

任何人都可以看到问题是什么?

4

2 回答 2

16

确保在使用之前定义资源(按 Xaml 解析顺序)。最简单的方法是将其放入 App.xaml

另请参阅此处了解类似问题: http: //www.paulkiddie.com/2011/10/the-importance-of-the-position-of-window-resources-element-in-wpf-xaml-markup/

于 2012-12-13T19:03:23.090 回答
0

在我的情况下,资源在使用之前已正确定义,但对转换器的引用错误。

有问题的行是

...{Binding MyProperty, Converter={StaticResource local:MyConverter}}

它应该没有命名空间别名

...{Binding MyProperty, Converter={StaticResource MyConverter}}

其中local是包含转换器类的命名空间别名,并且MyConverter是在 XAML 中的资源中定义的键。

于 2021-08-25T09:57:49.180 回答