PropertyGrid将泛型类型更改为特定类型

本文关键字:类型 泛型类型 PropertyGrid | 更新日期: 2023-09-27 17:50:52

所以我有两个对象有两种不同的类型。第一个是ItemTypes类型,称为Type,第二个是Type类型,称为SubType

我想完成的是当我改变我的ItemType属性时,我需要我的SubType属性改变为我拥有的许多不同类型(ConsumableSubType, ContainerSubType等)之一

下面是我的两个属性的代码和一些属性网格的注释。

    [RefreshProperties(System.ComponentModel.RefreshProperties.All)]
    [TypeConverter(typeof(EnumConverter))]
    [DisplayName("Type")]
    [XmlIgnore]
    public ItemTypes _Type
    {
        get { return Type; }
        set
        {
            Type = value;
            //Do some logic in here to set _SubType to a different type
        }
    }
    [TypeConverter(typeof(EnumConverter))]
    [DisplayName("Sub Type")]
    [XmlIgnore]
    public Type _SubType { get; set; }

PropertyGrid将泛型类型更改为特定类型

不能在运行时更改属性的类型。但是,您可以将其设置为object,然后为其分配任何您喜欢的值。