【问题标题】:What to put in the Type targetType parameter in IValueConverter在 IValueConverter 的 Type targetType 参数中放入什么
【发布时间】:2013-04-17 13:32:51
【问题描述】:

我正在通过后面的代码调用 IValueConverter 类,但我不确定在 Type targetType 参数中放入什么。该对象是string,但使用它会给我'无效的表达式术语'字符串'`

我调用转换器的代码

secondConverter.Convert(score, string, null, CultureInfo.CurrentCulture);

转换器类

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        TimeSpan ts = new TimeSpan(0, 0, (int)value);

        return String.Format("{0:D2}:{1:D2}:{2:D2}",
                        ts.Hours,
                        ts.Minutes,
                        ts.Seconds);
    }

【问题讨论】:

    标签: c# types windows-phone-8 ivalueconverter


    【解决方案1】:

    您可以使用typeof(string) 代替字符串,但您的转换器似乎没有使用或验证目标类型,因此您可以将任何内容放在那里,包括 null。

    通常,您的转换器至少应该验证目标类型是字符串,如果不是则抛出异常。

    【讨论】:

    • 使用typeof(string) 给了我`无法将类型'object'隐式转换为'string'。存在显式转换(您是否缺少演员表?)'
    • @PutraKg 您的方法返回一个对象。你如何处理这个值?
    • 啊我修复了使用对象变量作为返回对象然后将其转换为字符串
    • @PutraKg 那么,一切都解决了吗?那么您可能应该在此处将 alex 的答案标记为答案。它有比我更好的解释。 =)
    【解决方案2】:

    你会想要的

    secondConverter.Convert(score, typeof(string), null, CultureInfo.CurrentCulture);
    

    实际上使它成为Type 类型的参数。

    【讨论】:

      猜你喜欢
      • 2016-06-01
      • 1970-01-01
      • 2014-10-13
      • 2018-06-06
      • 2017-07-21
      • 1970-01-01
      • 2011-11-03
      • 1970-01-01
      相关资源
      最近更新 更多