using System;
using System.ComponentModel;
namespace FWindSoft.WinForm
{
internal class PropDescriptor : PropertyDescriptor
{
private PropertyItem m_Prop;
public PropDescriptor(PropertyItem prop, Attribute[] attrs)
: base(prop.Name, attrs)
{
m_Prop = prop;
}
#region 重写抽象方法
public override bool CanResetValue(object component)
{
return false;
}
public override object GetValue(object component)
{
return this.m_Prop.Value;
}
public override void ResetValue(object component)
{
}
public override void SetValue(object component, object value)
{
this.m_Prop.Value = value;
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override object GetEditor(Type editorBaseType)
{
return this.m_Prop.Editor ?? base.GetEditor(editorBaseType);
}
#endregion
#region 重写属性
public override Type ComponentType
{
get { return this.GetType(); }
}
public override bool IsReadOnly
{
get { return this.m_Prop.IsReadOnly; }
}
public override Type PropertyType
{
get { return m_Prop.Value.GetType(); }
}
///
/// 重写分类
///
public override string Category
{
get { return this.m_Prop.Category; }
}
///
/// 显示名称
///
public override string DisplayName
{
get { return this.m_Prop.DisplayName; }
}
public override TypeConverter Converter
{
get { return this.m_Prop.Convert; }
}
public override string Description
{
get { return this.m_Prop.Description; }
}
public override bool IsBrowsable
{
get { return this.m_Prop.IsVisible; }
}
#endregion
}
}