namespace Yw.WinFrmUI
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public class DictionaryPropertyDescriptor : PropertyDescriptor
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public DictionaryPropertyDescriptor(IDictionary d, object key) : base(key.ToString(), null)
|
{
|
_dictionary = d;
|
_key = key;
|
}
|
|
private IDictionary _dictionary;
|
private object _key;
|
|
/// <summary>
|
///
|
/// </summary>
|
public override Type PropertyType
|
{
|
get
|
{
|
var value = _dictionary[_key];
|
if (value == null)
|
{
|
return typeof(string);
|
}
|
return value.GetType();
|
}
|
}
|
|
/// <summary>
|
///
|
/// </summary>
|
public override void SetValue(object component, object value)
|
{
|
_dictionary[_key] = value;
|
}
|
|
/// <summary>
|
///
|
/// </summary>
|
public override object GetValue(object component)
|
{
|
return _dictionary[_key];
|
}
|
|
/// <summary>
|
///
|
/// </summary>
|
public override bool IsReadOnly
|
{
|
get { return false; }
|
}
|
|
/// <summary>
|
///
|
/// </summary>
|
public override Type ComponentType
|
{
|
get { return null; }
|
}
|
|
/// <summary>
|
///
|
/// </summary>
|
public override bool CanResetValue(object component)
|
{
|
return false;
|
}
|
|
/// <summary>
|
///
|
/// </summary>
|
public override void ResetValue(object component)
|
{
|
|
}
|
|
/// <summary>
|
///
|
/// </summary>
|
public override bool ShouldSerializeValue(object component)
|
{
|
return false;
|
}
|
|
|
}
|
}
|