Data binding 在Silverlight 4中将ConverterParameter绑定到资源文件
我正在尝试创建一个公共转换器,它将从资源resx文件(应用程序必须是可本地化的)中接收字符串作为参数Data binding 在Silverlight 4中将ConverterParameter绑定到资源文件,data-binding,silverlight-4.0,resourcedictionary,Data Binding,Silverlight 4.0,Resourcedictionary,我正在尝试创建一个公共转换器,它将从资源resx文件(应用程序必须是可本地化的)中接收字符串作为参数 <TextBlock ToolTipService.ToolTip="{Binding IsInUse, ConverterParameter={Binding Path=WhereUsedIndicatorTooltips, Source={StaticResource resource}}, Converter={StaticResource whereUsedIndicato
<TextBlock
ToolTipService.ToolTip="{Binding IsInUse, ConverterParameter={Binding Path=WhereUsedIndicatorTooltips, Source={StaticResource resource}}, Converter={StaticResource whereUsedIndicatorTooltipConverter}}" />
其中,资源在XAML中的页面顶部声明为:
<UserControl.Resources>
<resources:myResource x:Key="resource" />
</UserControl.Resources>
在运行时,我得到以下异常:
System.Windows.Markup.XamlParseException:
提供价值
“System.Windows.Data.Binding”引发了
例外。[行:47位置:42]
--->System.InvalidOperationException:由于以下原因,操作无效:
对象的当前状态
我从中了解到,ConverterParameter
是不可绑定的,并且不是一个DependencyObject
。除了将文本放入XAML之外,还有解决这个问题的方法吗?我从中找到了一个解决方案。这很有效。
我将带有DependencyProperty转换器的FrameworkElement放入:
<UserControl.Resources>
<utilConverters:myTooltipConverter x:Key="myTooltipConverter" Tooltips="{Binding Path=tooltips, Source={StaticResource resource}}" />
</UserControl.Resources>
我在这里遇到了同样的错误,
**
ElementName=RadCalendarMonths,Path=SelectedDate,StringFormat='MMMM
yyyy',ConverterCulture={Binding Path=CurrentCultureInfo,
Source={StaticResource ResourceWrapper}}/>
我使用了Converter Culture属性bind!Opps!我不能这样做,因为属性Converter Culture不是DependencyProperty。如果属性不是DependencyProperty的实例,则不能对其使用绑定
如果您查看VS2010上的属性(F4)窗格,您可以看到一些属性支持绑定,而有些属性不支持绑定!有些属性在那里看不到,因为有些属性是只读的
因此,利用资源是解决这一问题的合理途径