发送值给ValueConverter

本文关键字:ValueConverter | 更新日期: 2023-09-27 18:17:42

我有这个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"
                              />

帮忙吗?

发送值给ValueConverter

我想到的第一件事是检查是否尝试显式地添加与Mode=TwoWay的绑定模式。

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

Silverlight通常在用户没有注意到的情况下默默地处理异常(或者由于您的Visual Studio异常设置),因此在后两种情况下,转换器可能不会在没有向您显示异常的情况下执行某些操作。