解决WPF Xmal 可以运行界面报错无法显示 问题
程序开发过程中 ,有时候数据格式不满足标准格式,但自己对底层数据转换已做过处理,程序正常运行,但是 XAML界面中一直报数据类型不支持错误,导致整个 XMAL 页面无法正确显示。如下所示:
这里我定义了一个 StringToHuman 的类,但是在UI我通过字符串对类进行赋值,正常情况下肯定报错,但是通过重写和特性已经将该类赋予了可通过字符串转换的能力。程序可以正常执行,但是 页面无法正常显示 ,这时候通过设置VS修复错误。在选项-环境-预览功能里,勾选适用于 .NET Framework的新版WPF XMAL设计器,重启vs,即可解决问题。
using System.Text;
using System.Threading.Tasks;
namespace WPFStudy
{
[TypeConverterAttribute(typeof(StringToHumanTypeConverter))]
public class StringToHuman
{
public string Name { get; set; }
public StringToHuman Child { get; set; }
}
}
注意一定要关闭重新打开,打开后报错修复,页面正常显示。
恢复正常如下图:
转换过程 实现代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WPFStudy
{
public class StringToHumanTypeConverter:TypeConverter
{
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
if(value is string)
{
StringToHuman stringToHuman = new StringToHuman();
stringToHuman.Name = value as string;
return stringToHuman;
}
return base.ConvertFrom(context, culture, value);
}
}
}`