2011-12-14 63 views
0

我有這個ValueConverter:值發送到ValueConverter

public class LabelConverter : IValueConverter 
{ 
    public object Convert(object value, 
          Type targetType, 
          object parameter, 
          System.Globalization.CultureInfo culture) 
    {    
     return ApplicationSettings.getTranstaltion(value.ToString()); 
    } 
} 

它是用來根據所選語言的一些標註轉換。應該傳入的值是labelName,然後在數據庫中查找它。然後,選擇翻譯併發回。以下是我用過的兩次嘗試,但都失敗了:

<telerik:ChartLegend Header="{Binding Converter={StaticResource LabelConverter}, 
           ConverterParameter='lblLegend'}" 
           x:Name="ChartLegend1" 
           /> 

<telerik:ChartLegend Header="{Binding ElementName=ChartLegend1, Path=Tag 
           Converter={StaticResource LabelConverter}" 
           x:Name="ChartLegend1" 
           Tag="lblLegend" 
           /> 

任何幫助?

+0

你試圖實現它的方式看起來很尷尬。 我會選擇一個附加的屬性來實現相同的事情或重寫一些基本的控制(文本塊等),並捕獲onloaded事件或一些事情來做翻譯。 – Entrodus 2011-12-14 08:47:51

回答

1

我想到的第一件事是檢查嘗試使用Mode=TwoWay明確添加綁定模式。

[編輯] 此外,如果ApplicationSettings.getTranstaltion()拋出是默默的Silverlight哽咽一個例外,你應該檢查,如果檢查。最後,value曾經是null?在這種情況下,value.ToString()可能會引發異常。

Silverlight通常會在用戶沒有注意到它的情況下處理異常(或由於您的Visual Studio異常設置),所以在後面的兩種情況下,轉換器可能不會做任何事情,而不會向您提供例外。

+0

我很愛,當我忘記這個該死的模式-_- 非常感謝!我會在5分鐘內接受它,當它允許它:) – 2011-12-14 08:47:32