【问题标题】:Send value to ValueConverter将值发送到 ValueConverter
【发布时间】:2011-12-14 08:38:21
【问题描述】:

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

有什么帮助吗?

【问题讨论】:

  • 您尝试实现它的方式看起来很尴尬。我要么选择一个附加属性来实现同样的目的,要么覆盖一些基本控件(文本块等)并捕获 onloaded 事件或进行翻译。

标签: c# silverlight ivalueconverter


【解决方案1】:

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

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

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

【讨论】:

  • 当我忘记这个该死的模式时,我非常喜欢 -_- 非常感谢!当 SO 允许时,我会在 5 分钟内接受它:)
  • 该值不能为空,因为我总是明确指定该值,所以这不应该是一个问题......再次感谢一次:)
  • 您好,Ivan,我刚刚编辑了我的帖子,而您已经发表了评论。 :-) 很高兴能为您提供帮助!
猜你喜欢
  • 2020-08-27
  • 2014-01-20
  • 1970-01-01
  • 2019-01-13
  • 1970-01-01
  • 2013-03-29
  • 1970-01-01
  • 2013-04-27
  • 2014-06-01
相关资源
最近更新 更多