Українська
Підсумки
Висновки
Прив’язка даних, стилі й шаблони відокремлюють вигляд від даних. У патерні MVVM View прив’язується до властивостей і команд ViewModel, який не знає про інтерфейс і тестується модульними тестами, а CommunityToolkit.Mvvm прибирає шаблонний код.
Питання для самоперевірки
- Що таке ціль і джерело прив’язки? Як успадковується
DataContext? - Що відбувається, якщо шлях прив’язки помилковий? Як знайти таку помилку?
- Чим відрізняються режими
OneWay,TwoWay,OneTime,OneWayToSource? - Як реалізувати
INotifyPropertyChanged? Для чого[CallerMemberName]іSetProperty? - Чим відрізняються
StringFormat,FallbackValue,TargetNullValueі конвертер значень? - Чому для списків використовують
ObservableCollection<T>? Що такеDataTemplate? - Як відсортувати, відфільтрувати й згрупувати елементи за допомогою
ICollectionView? - Чим
StaticResourceвідрізняється відDynamicResource? Як перемкнути тему оформлення? - Що таке неявний стиль,
BasedOn,TriggerіDataTrigger? - Для чого
ControlTemplate,TemplateBindingіContentPresenter? - Як працює
INotifyDataErrorInfoі як показати помилку валідації в інтерфейсі? - Які ролі мають Model, View і ViewModel? Які переваги дає патерн MVVM?
- З яких членів складається
ICommand? Коли викликаютьCanExecuteChanged? - Що генерують
[ObservableProperty]і[RelayCommand]? Чому клас має бутиpartial? - Як протестувати ViewModel і чому його розміщують в окремій бібліотеці?
Корисні посилання
- Прив’язка даних: https://learn.microsoft.com/dotnet/desktop/wpf/data/
- Діагностика прив’язок: https://learn.microsoft.com/visualstudio/xaml-tools/xaml-data-binding-diagnostics
- MVVM Toolkit: https://learn.microsoft.com/dotnet/communitytoolkit/mvvm/