Я склонен к "грубой силе" моего кода - не могли бы вы установить начальное значение для вашего private string _field
, возможно, в конструкторе?
Кроме того, вы уверены, что установка для свойства CancelEventHandler
Отмена значения ИСТИНА помечает ваши данные как недействительные?
Возможно, вы даже захотите добавить поле private bool _valid
в ваш класс данных, которое возвращает значения только в том случае, если оно действительно.
private class Data
{
private bool _valid;
private string _field;
public Data()
{
_field = null;
_valid = false;
}
public string Field
{
get
{
if (_valid)
{
return _field;
} else {
return null;
}
set
{
// this should never be called, but it is.
_field = value;
_valid = !String.IsNullOrEmpty(_field);
}
}
}
Просто несколько идей для изучения.