Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
Наш ресурс дает возможность бесплатно читать книгу онлайн Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю. Жанр: Базы данных . Сайт books-read.com дает возможность читать полную версию книги без регистрации и sms. Все книги онлайн, не надо качать fb2, epub, txt.
Комбинирование 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>