WPF属性与特性的映射(TypeConverter)

Posted 名扬博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF属性与特性的映射(TypeConverter)相关的知识,希望对你有一定的参考价值。

1,定义一个类

 

public class Human
{
public string Name { get; set; }
public Human Child { get; set; }
}

2在XAML文件中引用

 

<Window.Resources>
<Local:Human x:Key="human" Child="明洋" x:Name="human"></Local:Human>
</Window.Resources>

 

3添加转换类

 

public class StringToHumanTypeConverter:TypeConverter
{
public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value)
{
if(value is string)
{
Human h = new Human();
h.Name = value as string;
return h;
}
return base.ConvertFrom(context, culture, value);
}
}

4引用转化类

 

[TypeConverterAttribute(typeof(StringToHumanTypeConverter))]
//[TypeConverter(typeof(StringToHumanTypeConverter))]与上面的一样
public class Human
{
public string Name { get; set; }
public Human Child { get; set; }
}

5测试映射

 

private void Button_Click(object sender, RoutedEventArgs e)
{
Human h1 = (Human)this.FindResource("human");//对应X:Key
MessageBox.Show(h1.Child.Name);
}

以上是关于WPF属性与特性的映射(TypeConverter)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 TypeConverter 通过 JNA 将 C 整数映射到 Java 枚举?

[UWP]了解TypeConverter

C# 属性控件(propertyGrid),如何动态添加下拉框中的值。例如:Name : 下拉框中的值:小米,小明。

枚举类型的 TypeConverter 属性破坏了该类型的依赖属性

WPF--依赖属性

WPF--依赖属性