2011-02-16 68 views
2

我試圖創建一個通用轉換器,它將從資源resx文件(該應用程序必須可本地化)中接收字符串作爲參數。將ConverterParameter綁定到Silverlight 4中的資源文件

<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:操作無效由於對象的 當前狀態.....

我知道從this StackOverflow questionConverterParameter不可綁定,不是DependencyObject。除了將文本放在XAML中之外,是否有解決此問題的方法?

回答

1

我從Brandon Truong找到了解決方案。這工作得很好。 我把我的FrameworkElement的用的DependencyProperty轉換器:

<UserControl.Resources> 
    <utilConverters:myTooltipConverter x:Key="myTooltipConverter" Tooltips="{Binding Path=tooltips, Source={StaticResource resource}}" /> 
    </UserControl.Resources> 
0

我在這裏得到了同樣的錯誤, **

的ElementName = RadCalendarMonths,路徑= SelectedDate,的StringFormat = 'MMMM YYYY',ConverterCulture = {Binding Path = CurrentCultureInfo, Source = {StaticResource ResourceWrapper}}}「/>

我用Converte r文化財產Binded!哎呀!我不能這樣做,因爲屬性ConverterCulture不是一個DependencyProperty。如果一個屬性不是DependencyProperty的實例,你不能使用綁定。

如果你看看VS2010上的Property(F4)窗格,你可以看到一些屬性支持綁定一些屬性不支持!一些屬性沒有在那裏看到,因爲一些屬性只讀,因爲你知道。

所以使用資源是解決這個問題的合乎邏輯的方法。