如何灰显一类属性

时间:2014-07-08 07:25:52

标签: c# propertygrid

嘿我使用Propertygrid来设置表的值。某些属性将被重置,并且只有在其他属性设置为某个特定值时才设置为只读。

这发生在这样的属性的setter中:

    [CustomSortedCategory("Modes", 2, 4), DescriptionAttribute("..."), ReadOnly(false), DisplayName("Mode")]
    [System.ComponentModel.RefreshProperties(RefreshProperties.All)]
    public GraphLineFunctions Function
    {
        get
        {
            return function;
        }
        set
        {
            function = value;
            if (function == GraphLineFunctions.TimeDelta || function == GraphLineFunctions.TimeDeltaAll) {
                BasetimeFilter = "";
                PropertyDescriptor descriptor = TypeDescriptor.GetProperties(this.GetType())["BasetimeFilter"];
                ReadOnlyAttribute attrib = (ReadOnlyAttribute)descriptor.Attributes[typeof(ReadOnlyAttribute)];
                FieldInfo isReadOnly = attrib.GetType().GetField("isReadOnly", BindingFlags.NonPublic | BindingFlags.Instance);
                isReadOnly.SetValue(attrib, true);
            }
        }
    }

如果此类别中的所有属性都设置为只读,我希望类别也显示为灰色。有人知道一个简单的方法吗?

谢谢

0 个答案:

没有答案