我有一个自定义类(调用I字段),它实现了几个属性。其中一个属性是MaximumLength,它指定值可以是的最大长度。value属性是一个对象,因此可以将我设置为string、int、double等,然后我有一个类,其中包含类型字段的多个属性。所有字段属性都在构造函数中初始化,并且只能写入Field.Value属性。我要做的是,如果试图将Field.Value设置为对该字段而言太长的值,则抛出一个错误,然后实现InotifyPropertyChanged。我的问题是Value属性是泛型字段类的成员,我不知道如何获取该类中属性的名称。
一个例子:
public class Customer
{
private Field _firstName = new Field(typeof(string), 20);
public Field FirstName
{
get
{
return _firstName;
}
}
}
public class Field
{
private Type _type;
private int _maximumLength;
object _value;
public Field(Type type, int maximumLength)
{
_type = type;
_maximumLength = maximumLength;
}
public Object Value
{
get
{
return _value;
}
set
{
if (value.ToString().Length > _maximumLength)
{
throw(string.Format("{0} cannot exceed {1} in length.", property name, _maximumValue);
}
else
{
_value = value;
OnPropertyChanged(property name);
}
}
}
}
希望这足够清楚。