将值发送给ValueConverter

时间:2011-12-14 08:38:21

标签: c# silverlight ivalueconverter

我有这个ValueConverter:

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

用于根据所选语言转换某些标签。应该传入的值是labelName,然后在数据库中查找。然后选择propper翻译并发回。以下是我使用但尝试失败的两次尝试:

 <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"
                              />

任何帮助?

1 个答案:

答案 0 :(得分:1)

我想到的第一件事就是检查尝试使用Mode=TwoWay明确添加绑定模式。

[编辑] 此外,您应该检查是否ApplicationSettings.getTranstaltion()引发了一个由Silverlight静默阻塞的异常。最后,value可能 null 吗?在这种情况下,value.ToString()可能会抛出异常。

Silverlight经常在没有用户注意到的情况下(或由于您的Visual Studio异常设置)静默处理异常,因此在后两种情况下,如果没有向您提供异常,转换器可能无法执行某些操作。