在“System.Windows.StaticResourceExtension”中提供价值

4
在一个 XAML 页面中,我正在尝试使用 IValueConverter,但出现了错误。
  • IValueConverter 在另一个程序集中,我已经添加了引用。
  • 没有设计时错误。
  • 我已经使用 ResourceKey 给 StaticResource 赋值。
在页面顶部我有这个代码: 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}}" />

有人能看出问题在哪里吗?

(这段内容与IT技术无关)

@Sebastian,错误就是问题的标题。 - Drahcir
1
你能把资源放到App.xaml中吗?也许你遇到了这样的问题:http://www.paulkiddie.com/2011/10/the-importance-of-the-position-of-window-resources-element-in-wpf-xaml-markup/ - Sebastian
我遇到了同样的问题,重新加载设计器似乎可以解决这个问题,但在重启Visual Studio之前需要这样做... - Dtex
@DTex,不,这次不是那个问题,尽管昨天那个确实解决了另一个问题。 - Drahcir
@Sebastian 对不起,我搞反了,我有一个设计时错误,但在运行时没有错误。 - Dtex
显示剩余2条评论
2个回答

17

2
我在App.xaml中定义了一个转换器并为其分配了一个键。当我从应用程序中的“UserControl”引用转换器时,会出现异常。 - Shimmy Weitzhandler
链接无法使用。 - Denis Gladkiy

1
在我的情况下,资源在使用之前被正确定义,但存在对转换器的错误引用。
有问题的行是:
...{Binding MyProperty, Converter={StaticResource local:MyConverter}}

而且它应该没有命名空间别名。
...{Binding MyProperty, Converter={StaticResource MyConverter}}

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接