WPF_初步认识TypeConverter
WPF对象的属性通常为String类型,但并不总是。类型不符时对其进行String赋值显然是不行的,但是可以通过类型转换类将String转换为对应类型后再进行赋值。
1.类型转换类继承TypeConverter类
2.重写ConvertFrom函数
3.为被赋值类(通过TypeConverterAttribute特征类)标注特征
<local:Human x:Key="human" Name="Tom" Child="LittleTom"/>
//特性(可以理解为Java中的注解,但Java的注解参考了特性)
[TypeConverterAttribute(typeof(NameToHumanTypeConverter))]//TypeConverterAttribute可简写为TypeConverter(特征类在使用时可省略Attribute)
public class Human
{
public string Name { get; set; }
public Human Child { get; set; }
}
//类型转换器:前端赋值时可能出现类型不符的情况,此时将调用该方法改变数据类型,再赋值
public class NameToHumanTypeConverter : TypeConverter
{
public override object? ConvertFrom(ITypeDescriptorContext? context, CultureInfo? culture, object value)
{
string name = value.ToString();
Human human = new Human();
human.Name = name;
return human;
}
}
上述代码中,"LittleTom"将作为参数value被传入ConvertFrom函数,ConvertFrom函数的返回值将被赋值给Child属性