【发布时间】: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