【问题标题】:XamlParseException when using converter使用转换器时出现 XamlParseException
【发布时间】:2014-04-23 19:31:00
【问题描述】:

我在尝试使用转换器时收到 XamlParseException。我怀疑我在转换器中犯了一个错误,但无法抓住它。

完整的错误文本:

类型的第一次机会异常 'System.Windows.Markup.XamlParseException' 发生在 System.Windows.ni.dll

附加信息:无法创建类型的实例 'app.Converters.DimensionToText' [行:21 位置:42]

namespace app.Converters
{
    class DimensionToText : IValueConverter
    {
        public object Convert(object value, Type targetType,
            object parameter, CultureInfo culture)
        {
            Dimensions dim = (Dimensions) value;
            //bool param = (bool) parameter;
            return dim.width.ToString().Trim() + "\"x " + dim.length.ToString().Trim() + "\"x " + dim.height.ToString().Trim() + "\"";
        }

        public object ConvertBack(object value, Type targetType,
                object parameter, CultureInfo culture)
        {
            return value;
        }
    }
}

XAML 部分:

xmlns:converter="clr-namespace:app.Converters"
...
<phone:PhoneApplicationPage.Resources>
    <converter:DimensionToText x:Key="DimensionToText"/>
</phone:PhoneApplicationPage.Resources>
...
<TextBlock Style="{StaticResource PhoneTextNormalStyle}"> 
    <Run Text="Dimensions:"/>
    <Run Text="{Binding information.dimensions, Converter={StaticResource DimensionToText}}"/>
</TextBlock>

奇怪的是,在设计时转换器工作得很好。任何建议表示赞赏

【问题讨论】:

  • 使转换器成为公共类会改变行为吗?
  • @Vkt0rS。您的编辑没有改进此处的格式。它只是让错误更难阅读。

标签: c# windows-phone-8 ivalueconverter


【解决方案1】:

让你的转换器public

namespace app.Converters
{
    public class DimensionToText : IValueConverter
    {
        public object Convert(object value, Type targetType,
            object parameter, CultureInfo culture)
        {
            Dimensions dim = (Dimensions) value;
            //bool param = (bool) parameter;
            return dim.width.ToString().Trim() + "\"x " + dim.length.ToString().Trim() + "\"x " + dim.height.ToString().Trim() + "\"";
        }

        public object ConvertBack(object value, Type targetType,
                object parameter, CultureInfo culture)
        {
            return value;
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-11
    • 1970-01-01
    • 1970-01-01
    • 2013-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多