Data binding 在Silverlight 4中将ConverterParameter绑定到资源文件

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

我正在尝试创建一个公共转换器,它将从资源resx文件(应用程序必须是可本地化的)中接收字符串作为参数

<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)窗格,您可以看到一些属性支持绑定,而有些属性不支持绑定!有些属性在那里看不到,因为有些属性是只读的

因此,利用资源是解决这一问题的合理途径