Metadata + JavaScript = ♥ Применение метаданных ViewModel для конфигурировани...
Разработка приложений работы с данными при помощи WPF
1. Паттерн MVVM
Привязка данных
Конвертация данных
Валидация данных
Шаблоны данных
Команды
Фильтрация данных
Развертывание
2.
3.
4. Классы участники паттерна
Паттерн MVVM
Привязка данных
Конвертация данных
Валидация данных
Вид - содержит UI приложения
Шаблоны данных
Команды Модель представления - инкапсулирует логику
представления
Фильтрация данных
Развертывание Модель - инкапсулирует бизнес-логику
приложения и данные
5.
6. Параметры привязки
данных
Паттерн MVVM
Привязка данных
Конвертация данных
Валидация данных
Binding source – источник данных, может быть
Шаблоны данных представлен CLR классом, XML файлом, WCF службой
Команды
Binding Target – приемник данных может быть
Фильтрация данных представлен визуальным WPF компонентом, либо
CLR объектом класса DependencyObject
Развертывание
Виды связи
OneWay – однонаправленная связь от источника к приемнику данных
TwoWay – двунаправленная
OneWayToSource - однонаправленная связь от приемника к источнику данных
7. Как можно связать бизнес с UI
Паттерн MVVM
Из кода
Привязка данных
Конвертация данных
Валидация данных
Шаблоны данных
Команды
В XAML, подключив namespace
Фильтрация данных xmlns:obj="clr-namespace:WPFApplication1”
Развертывание …
<Window.Resources>
<obj:NameList x:Key="NameListData"/>
</Window.Resources>
8. Что нужно для поддержки
редактирования
Паттерн MVVM
Для обновления связанных элементов
INotifyPropertyChanged Interface
Привязка данных
Конвертация данных Для обновления удаляемых и
Валидация данных добавляемых элементов
Шаблоны данных
ObservableCollection<T>
Команды
Детальный контроль в DataGrid
Фильтрация данных IEditableObject
Развертывание
11. Где должна происходить
проверка?
Паттерн MVVM
Уровень данных?
Привязка данных
Конвертация данных
Уровень бизнес-логики?
Валидация данных
Шаблоны данных Уровень пользовательского
Команды интерфейса?
Фильтрация данных
Развертывание
12. IDataErrorInfo – валидация
на уровне классов данных
Объявление интерфейса
Паттерн MVVM
IDataErrorInfo
Привязка данных
Конвертация данных
Валидация данных
Шаблоны данных
Команды
Фильтрация данных
Развертывание
13. Отображение ошибок валидации на
форме
Паттерн MVVM
Привязка данных
Конвертация данных
Валидация данных
Шаблоны данных
Команды
Фильтрация данных
Развертывание
14. Проверка данных в
интерфейсе пользователя
Создать наследник от класса ValidationRule
Паттерн MVVM
Привязка данных
Конвертация данных
Валидация данных
Шаблоны данных
Команды
Фильтрация данных
Декларировать класс правила в XAML
Развертывание
15. Отображение ошибок валидации на
форме
Паттерн MVVM
Привязка данных
Конвертация данных
Валидация данных
Шаблоны данных
Команды
Фильтрация данных
Развертывание
16. Валидация нескольких
объектов
Паттерн MVVM
Привязка данных
Конвертация данных
Валидация данных
Шаблоны данных
Команды
Фильтрация данных
17. Отображение ошибок валидации на
форме
Паттерн MVVM
Привязка данных
Конвертация данных
Валидация данных
Шаблоны данных
Команды
Фильтрация данных
Развертывание
20. Конвертация данных
Паттерн MVVM
Привязка данных
Конвертация данных
Валидация данных Доступна через интерфейс IValueConverter
Шаблоны данных
Команды
Фильтрация данных
Развертывание
21. Пример конвертора данных
Преобразование строки в картинку
Паттерн MVVM
Привязка данных
Конвертация данных
Валидация данных
Шаблоны данных
Команды
Фильтрация данных
Развертывание
22. Привязка конвертора в XAML
Паттерн MVVM
Привязка данных
Конвертация данных
Валидация данных
Шаблоны данных
Команды
Фильтрация данных
Развертывание
28. Интерфейс ICommand
Определяет выполняемое действие и
Паттерн MVVM
условие когда данное действие может быть
Привязка данных выполнено
Конвертация данных
Валидация данных
Шаблоны данных
Команды
Фильтрация данных
Развертывание
32. Что надо сделать, чтобы выполнить
фильтрацию коллекции данных?
Получить представление коллекции
Паттерн MVVM
Привязка данных
Конвертация данных Определить условия фильтрации через
предикат
Валидация данных
Шаблоны данных
Команды
Фильтрация данных
Связать представление с предикатом
Развертывание
35. WPF Client Profile – 28 MB
Common Language Runtime (CLR)
ClickOnce
Windows Forms
Windows Presentation Foundation
Windows Communication Foundation
37. Что такое связывание данных и как его использовать
Как и на каких уровнях возможно производить валидацию
данных
Как использовать конвертацию данных
Как применять шаблоны данных
Как использовать команды
Каким производить фильтрацию данных средствами WPF
Как выполнить развертывание WPF приложения