Обнаружение неверных данных в источнике привязки данных - PullRequest
0 голосов
/ 06 мая 2011

У меня есть комбинированное окно с источником данных, основанным на массиве объектов, а свойство Value привязано к свойству в репозитории модели:

DataSource = someArray;
ValueMember = "ArrayValue";
DisplayMember = "Name";
DataBindings.Add("Value", repository, "RepositoryValue");
DataBindings["Value"].DataSourceUpdateMode = DataSourceUpdateMode.OnPropertyChanged;

В некоторых сценариях пользователь изменяет выбранный элемент в поле со списком, и это отражается в repository.RepositoryValue, а иногда мы извлекаем данные из файла или базы данных и непосредственно заполняем repository.RepositoryValue, который затем автоматически отражается в поле со списком , Иногда файл или база данных могут содержать недопустимое значение (что-то, не включенное в someArray), и мы хотели бы обнаружить этот сценарий и заставить поле со списком выбрать первый элемент в списке или полностью отклонить изменение , Возможно ли это, и как мы должны это делать?

1 Ответ

0 голосов
/ 07 мая 2011

Вы можете использовать форматирование события Binding, чтобы обработать его.

Binding SelectedValueBinding = new Binding("SelectedValue", repository, "RepositoryValue", true, DataSourceUpdateMode.OnPropertyChanged);
SelectedValueBinding.Format += new ConvertEventHandler(SelectedValueBinding_Format);
myComboBox.DataBindings.Add(SelectedValueBinding);

void SelectedValueBinding_Format(object sender, ConvertEventArgs e)
{
        // if e.Value is Invalid
        // myComboBox.SelectedValue = "Default Value";
}

Проверьте больше на:

Как связать пользовательский тип с TextBox.Text?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...