Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю (книги без регистрации бесплатно полностью TXT, FB2) 📗
Тут можно читать бесплатно Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю (книги без регистрации бесплатно полностью TXT, FB2) 📗. Жанр: Базы данных. Так же Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте online-knigi.org (Online knigi) или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Комбинирование IDataErrorInfo С INotifyDataErrorInfo для проверки достоверности
В предыдущем разделе было показано, что реализацию интерфейса
IDataErrorInfosetPropertyChangedIDataErrorInfoINotifyDataErrorInfoINotifyDataErrorInfosetIDataErrorInfoЦель применения
IDataErrorInfoINotifyDataErrorInfoPropertyChangedIDataErrorInfostring.EmptyCheckMakeAndColor()public string this[string columnName]{ get { ClearErrors(columnName); switch (columnName) { case nameof(Id): break; case nameof(Make): CheckMakeAndColor(); if (Make == "ModelT") { AddError(nameof(Make), "Too Old"); hasError = true; } break; case nameof(Color): CheckMakeAndColor(); break; case nameof(PetName): break; } return string.Empty; }}internal bool CheckMakeAndColor(){ if (Make == "Chevy" && Color == "Pink") { AddError(nameof(Make), $"{Make}'s don't come in {Color}"); AddError(nameof(Color), $"{Make}'s don't come in {Color}"); return true; } return false;}Запустите приложение, выберите автомобиль
ChevyPink
Это еще одно преимущество применения интерфейса
INotifyDataErrorInfoОтображение всех ошибок
Свойство
ErrorsValidationValidationErrorValidationErrorErrorContentListBoxListBoxПервым делом добавьте одну строку в
DetailsGridHeightWindow300ListBoxItemsSourceDetailsGridValidation.ErrorsPath<ListBox Grid.Row="6" Grid.Column="0" Grid.ColumnSpan="2" ItemsSource="{Binding ElementName=DetailsGrid, Path=(Validation.Errors)}"></ListBox>Добавьте к
ListBoxDataTemplateListBoxErrorContentListBoxItemValidationErrorErrorContent<ListBox.ItemTemplate> <DataTemplate>