Xmal——自定义类型属性赋值

1)后台代码中添加新的类:

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

2)前台代码中引入类定义的命名空间:

xmlns:local="clr-namespace:HappyWPF"

在这里插入图片描述
3)自定义类资源声明:

<Window.Resources>
    <local:Human x:Key="human" Name="Tim" />
</Window.Resources>

4)添加的Button事件:

<Grid>
    <Button Content="Show" Width="120" Height="30" Click="Button_Click"/>
</Grid>

5)Click事件的实现

private void Button_Click(object sender, RoutedEventArgs e)
    {
        Human h = this.FindResource("human") as Human;//FindResource(“”)
        if (h != null)
        {
            MessageBox.Show(h.Name);
        }
    }

问题:显示Human中的Child 的Name;
在这里插入图片描述
要实现此种方式:
1)需要重写TypeConverter类中ConvertFrom()(需要添加应用:using System.ComponentModel;)

public class NameToHumanTypeConverter : TypeConverter
{
    public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
    {
        string name = value.ToString();
        Human child = new Human();
        child.Name = name;
        return child;
    }
}

2)Human类加特性

[TypeConverterAttribute(typeof(NameToHumanTypeConverter))]
public class Human
{
    public string Name { get; set; }
    public Human Child { get; set; }
}

完整代码:https://download.csdn.net/download/qq_43026206/12473320

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值