PropertyGridを通じてobject
オブジェクトにアクセスし、それらが表す実際のものとして動作させたいと思います。おもちゃのクラスのような;.NET PropertyGrid:実行時にオブジェクトインスタンスにアクセスして操作する
[TypeConverter(typeof(ObjectBucket.ObjectBucketConverter))]
class ObjectBucket
{
public object foo;
[Browsable(true)]
public object Object
{
get { return foo; }
set { foo = value; }
}
private class ObjectBucketConverter : ExpandableObjectConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return sourceType == typeof(string) ? true : base.CanConvertFrom(context, sourceType);
}
}
}
私はそれに何もしないことができるというの標準
object
行動ではなく、オブジェクトのアクセサを通じて
float
を言う設定し、それがPropertyGridの中
float
として振る舞う持ってできるようにしたいと思い
。
回避策として、次のアクセサを配置しました。
[Browsable(true)]
public string ObjectStr
{
get { return foo.ToString(); }
set
{
try
{
foo = TypeDescriptor.GetConverter(foo.GetType()).ConvertFromInvariantString(value);
}
catch
{
return;
}
}
}
私はオブジェクトを操作できますが、それは理想的ではありません。私もできることは可能ですか?