SlideShare a Scribd company logo
1 of 38
   Паттерн MVVM
   Привязка данных
   Конвертация данных
   Валидация данных
   Шаблоны данных
   Команды
   Фильтрация данных
   Развертывание
Классы участники паттерна

Паттерн MVVM
Привязка данных
Конвертация данных
Валидация данных
                     Вид - содержит UI приложения
Шаблоны данных
Команды              Модель представления - инкапсулирует логику
                     представления
Фильтрация данных
Развертывание        Модель - инкапсулирует бизнес-логику
                     приложения и данные
Параметры привязки
                     данных

Паттерн MVVM
Привязка данных
Конвертация данных
Валидация данных
                      Binding source – источник данных, может быть
Шаблоны данных        представлен CLR классом, XML файлом, WCF службой
Команды
                      Binding Target – приемник данных может быть
Фильтрация данных     представлен визуальным WPF компонентом, либо
                      CLR объектом класса DependencyObject
Развертывание
                      Виды связи
                      OneWay – однонаправленная связь от источника к приемнику данных
                      TwoWay – двунаправленная
                      OneWayToSource - однонаправленная связь от приемника к источнику данных
Как можно связать бизнес с UI


Паттерн MVVM
                     Из кода
Привязка данных
Конвертация данных
Валидация данных
Шаблоны данных
Команды
                     В XAML, подключив namespace
Фильтрация данных      xmlns:obj="clr-namespace:WPFApplication1”

Развертывание          …
                       <Window.Resources>
                               <obj:NameList x:Key="NameListData"/>
                       </Window.Resources>
Что нужно для поддержки
                     редактирования

Паттерн MVVM
                     Для обновления связанных элементов
                     INotifyPropertyChanged Interface
Привязка данных
Конвертация данных   Для обновления удаляемых и
Валидация данных     добавляемых элементов
Шаблоны данных
                     ObservableCollection<T>
Команды
                     Детальный контроль в DataGrid
Фильтрация данных    IEditableObject
Развертывание
Model


ViewModel




               View
Где должна происходить
                     проверка?

Паттерн MVVM
                     Уровень данных?
Привязка данных
Конвертация данных
                     Уровень бизнес-логики?
Валидация данных
Шаблоны данных       Уровень пользовательского
Команды              интерфейса?
Фильтрация данных
Развертывание
IDataErrorInfo – валидация
                      на уровне классов данных
                     Объявление интерфейса
Паттерн MVVM
                     IDataErrorInfo
Привязка данных
Конвертация данных
Валидация данных
Шаблоны данных
Команды
Фильтрация данных
Развертывание
Отображение ошибок валидации на
                     форме



Паттерн MVVM
Привязка данных
Конвертация данных
Валидация данных
Шаблоны данных
Команды
Фильтрация данных
Развертывание
Проверка данных в
                      интерфейсе пользователя
                     Создать наследник от класса ValidationRule
Паттерн MVVM
Привязка данных
Конвертация данных
Валидация данных
Шаблоны данных
Команды
Фильтрация данных
                      Декларировать класс правила в XAML
Развертывание
Отображение ошибок валидации на
                     форме



Паттерн MVVM
Привязка данных
Конвертация данных
Валидация данных
Шаблоны данных
Команды
Фильтрация данных
Развертывание
Валидация нескольких
                     объектов

Паттерн MVVM
Привязка данных
Конвертация данных
Валидация данных
Шаблоны данных
Команды
Фильтрация данных
Отображение ошибок валидации на
                     форме



Паттерн MVVM
Привязка данных
Конвертация данных
Валидация данных
Шаблоны данных
Команды
Фильтрация данных
Развертывание
Model


ViewModel




               View
Конвертация данных

Паттерн MVVM
Привязка данных
Конвертация данных
Валидация данных     Доступна через интерфейс IValueConverter
Шаблоны данных
Команды
Фильтрация данных
Развертывание
Пример конвертора данных

                     Преобразование строки в картинку
Паттерн MVVM
Привязка данных
Конвертация данных
Валидация данных
Шаблоны данных
Команды
Фильтрация данных
Развертывание
Привязка конвертора в XAML


Паттерн MVVM
Привязка данных
Конвертация данных
Валидация данных
Шаблоны данных
Команды
Фильтрация данных
Развертывание
Model


ViewModel




               View
Шаблоны данных

Паттерн MVVM
Привязка данных
Конвертация данных
Валидация данных
Шаблоны данных
Команды
Фильтрация данных
Развертывание
Model


ViewModel




               View
Интерфейс ICommand

                     Определяет выполняемое действие и
Паттерн MVVM
                     условие когда данное действие может быть
Привязка данных      выполнено
Конвертация данных
Валидация данных
Шаблоны данных
Команды
Фильтрация данных
Развертывание
Модель команд

Паттерн MVVM
Привязка данных
Конвертация данных
Валидация данных
Шаблоны данных
Команды
Фильтрация данных
Развертывание
Model


ViewModel




               View
Что надо сделать, чтобы выполнить
                     фильтрацию коллекции данных?

                     Получить представление коллекции
Паттерн MVVM
Привязка данных
Конвертация данных   Определить условия фильтрации через
                     предикат
Валидация данных
Шаблоны данных
Команды
Фильтрация данных
                      Связать представление с предикатом
Развертывание
Model


ViewModel




               View
   WPF Client Profile – 28 MB
     Common Language Runtime (CLR)
     ClickOnce
     Windows Forms
     Windows Presentation Foundation
     Windows Communication Foundation
Model


ViewModel




               View
Что такое связывание данных и как его использовать
Как и на каких уровнях возможно производить валидацию
данных
Как использовать конвертацию данных
Как применять шаблоны данных
Как использовать команды
Каким производить фильтрацию данных средствами WPF
Как выполнить развертывание WPF приложения
Трешников Павел
skype: treshnikov
twitter: treshnikov
mail: treshnikov@gmail.com
Тел./факс: (846) 269-15-20
Группа компаний СМС-Автоматизация
www.sms-automation.ru

More Related Content

Similar to Разработка приложений работы с данными при помощи WPF

Продукты и решения Informatica
Продукты и решения  InformaticaПродукты и решения  Informatica
Продукты и решения InformaticaNatasha Zaverukha
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVCSQALab
 
МАИ, Сети ЭВМ, Лекция №4
МАИ, Сети ЭВМ, Лекция №4МАИ, Сети ЭВМ, Лекция №4
МАИ, Сети ЭВМ, Лекция №4Dima Dzuba
 
Автоматизация тестирования WCF сервисов
Автоматизация тестирования WCF сервисовАвтоматизация тестирования WCF сервисов
Автоматизация тестирования WCF сервисовSQALab
 
Внедрение единого профиля клиента банка на базе MDM-системы IBM InfoSphere Se...
Внедрение единого профиля клиента банка на базе MDM-системы IBM InfoSphere Se...Внедрение единого профиля клиента банка на базе MDM-системы IBM InfoSphere Se...
Внедрение единого профиля клиента банка на базе MDM-системы IBM InfoSphere Se...КРОК
 
Виртуализация критически важных приложений
Виртуализация критически важных приложенийВиртуализация критически важных приложений
Виртуализация критически важных приложенийJack Chikovany
 
Современные платформы (фреймворки) разработки веб- приложений на PHP
Современные платформы (фреймворки) разработки веб- приложений на PHP Современные платформы (фреймворки) разработки веб- приложений на PHP
Современные платформы (фреймворки) разработки веб- приложений на PHP Magecom Ukraine
 
Презентация Microsoft PowerPoint
Презентация Microsoft PowerPointПрезентация Microsoft PowerPoint
Презентация Microsoft PowerPointwebhostingguy
 
Мониторинг качества доставки сервисов в корпоративной сети
Мониторинг качества доставки сервисов в корпоративной сетиМониторинг качества доставки сервисов в корпоративной сети
Мониторинг качества доставки сервисов в корпоративной сетиСвязьКомплект
 
Petrov Cloud for corporate customer
Petrov Cloud for corporate customerPetrov Cloud for corporate customer
Petrov Cloud for corporate customerAnton Petrov
 
7 создание веб сервисов
7 создание веб сервисов7 создание веб сервисов
7 создание веб сервисовKewpaN
 
Roman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureRoman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureAndrew Mayorov
 
Visual Paradigm
Visual ParadigmVisual Paradigm
Visual Paradigmanddriga
 
Soa12c launch 4 mft cr
Soa12c launch 4 mft crSoa12c launch 4 mft cr
Soa12c launch 4 mft crVasily Demin
 
Экранирование локальных пользователей при выходе в публичные сети: эталонная ...
Экранирование локальных пользователей при выходе в публичные сети: эталонная ...Экранирование локальных пользователей при выходе в публичные сети: эталонная ...
Экранирование локальных пользователей при выходе в публичные сети: эталонная ...Dmitry Tikhovich
 
Metadata + JavaScript = ♥ Применение метаданных ViewModel для конфигурировани...
Metadata + JavaScript = ♥ Применение метаданных ViewModel для конфигурировани...Metadata + JavaScript = ♥ Применение метаданных ViewModel для конфигурировани...
Metadata + JavaScript = ♥ Применение метаданных ViewModel для конфигурировани...Alexander Byndyu
 

Similar to Разработка приложений работы с данными при помощи WPF (20)

Сервлеты
СервлетыСервлеты
Сервлеты
 
Продукты и решения Informatica
Продукты и решения  InformaticaПродукты и решения  Informatica
Продукты и решения Informatica
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
ASP.NET MVC 3
ASP.NET MVC 3ASP.NET MVC 3
ASP.NET MVC 3
 
МАИ, Сети ЭВМ, Лекция №4
МАИ, Сети ЭВМ, Лекция №4МАИ, Сети ЭВМ, Лекция №4
МАИ, Сети ЭВМ, Лекция №4
 
Автоматизация тестирования WCF сервисов
Автоматизация тестирования WCF сервисовАвтоматизация тестирования WCF сервисов
Автоматизация тестирования WCF сервисов
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Внедрение единого профиля клиента банка на базе MDM-системы IBM InfoSphere Se...
Внедрение единого профиля клиента банка на базе MDM-системы IBM InfoSphere Se...Внедрение единого профиля клиента банка на базе MDM-системы IBM InfoSphere Se...
Внедрение единого профиля клиента банка на базе MDM-системы IBM InfoSphere Se...
 
Виртуализация критически важных приложений
Виртуализация критически важных приложенийВиртуализация критически важных приложений
Виртуализация критически важных приложений
 
ASP.NET MVC: new era?
ASP.NET MVC: new era?ASP.NET MVC: new era?
ASP.NET MVC: new era?
 
Современные платформы (фреймворки) разработки веб- приложений на PHP
Современные платформы (фреймворки) разработки веб- приложений на PHP Современные платформы (фреймворки) разработки веб- приложений на PHP
Современные платформы (фреймворки) разработки веб- приложений на PHP
 
Презентация Microsoft PowerPoint
Презентация Microsoft PowerPointПрезентация Microsoft PowerPoint
Презентация Microsoft PowerPoint
 
Мониторинг качества доставки сервисов в корпоративной сети
Мониторинг качества доставки сервисов в корпоративной сетиМониторинг качества доставки сервисов в корпоративной сети
Мониторинг качества доставки сервисов в корпоративной сети
 
Petrov Cloud for corporate customer
Petrov Cloud for corporate customerPetrov Cloud for corporate customer
Petrov Cloud for corporate customer
 
7 создание веб сервисов
7 создание веб сервисов7 создание веб сервисов
7 создание веб сервисов
 
Roman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureRoman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows Azure
 
Visual Paradigm
Visual ParadigmVisual Paradigm
Visual Paradigm
 
Soa12c launch 4 mft cr
Soa12c launch 4 mft crSoa12c launch 4 mft cr
Soa12c launch 4 mft cr
 
Экранирование локальных пользователей при выходе в публичные сети: эталонная ...
Экранирование локальных пользователей при выходе в публичные сети: эталонная ...Экранирование локальных пользователей при выходе в публичные сети: эталонная ...
Экранирование локальных пользователей при выходе в публичные сети: эталонная ...
 
Metadata + JavaScript = ♥ Применение метаданных ViewModel для конфигурировани...
Metadata + JavaScript = ♥ Применение метаданных ViewModel для конфигурировани...Metadata + JavaScript = ♥ Применение метаданных ViewModel для конфигурировани...
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 Развертывание
  • 10.
  • 11. Где должна происходить проверка? Паттерн MVVM Уровень данных? Привязка данных Конвертация данных Уровень бизнес-логики? Валидация данных Шаблоны данных Уровень пользовательского Команды интерфейса? Фильтрация данных Развертывание
  • 12. IDataErrorInfo – валидация на уровне классов данных Объявление интерфейса Паттерн MVVM IDataErrorInfo Привязка данных Конвертация данных Валидация данных Шаблоны данных Команды Фильтрация данных Развертывание
  • 13. Отображение ошибок валидации на форме Паттерн MVVM Привязка данных Конвертация данных Валидация данных Шаблоны данных Команды Фильтрация данных Развертывание
  • 14. Проверка данных в интерфейсе пользователя Создать наследник от класса ValidationRule Паттерн MVVM Привязка данных Конвертация данных Валидация данных Шаблоны данных Команды Фильтрация данных Декларировать класс правила в XAML Развертывание
  • 15. Отображение ошибок валидации на форме Паттерн MVVM Привязка данных Конвертация данных Валидация данных Шаблоны данных Команды Фильтрация данных Развертывание
  • 16. Валидация нескольких объектов Паттерн MVVM Привязка данных Конвертация данных Валидация данных Шаблоны данных Команды Фильтрация данных
  • 17. Отображение ошибок валидации на форме Паттерн MVVM Привязка данных Конвертация данных Валидация данных Шаблоны данных Команды Фильтрация данных Развертывание
  • 19.
  • 20. Конвертация данных Паттерн MVVM Привязка данных Конвертация данных Валидация данных Доступна через интерфейс IValueConverter Шаблоны данных Команды Фильтрация данных Развертывание
  • 21. Пример конвертора данных Преобразование строки в картинку Паттерн MVVM Привязка данных Конвертация данных Валидация данных Шаблоны данных Команды Фильтрация данных Развертывание
  • 22. Привязка конвертора в XAML Паттерн MVVM Привязка данных Конвертация данных Валидация данных Шаблоны данных Команды Фильтрация данных Развертывание
  • 24.
  • 25. Шаблоны данных Паттерн MVVM Привязка данных Конвертация данных Валидация данных Шаблоны данных Команды Фильтрация данных Развертывание
  • 27.
  • 28. Интерфейс ICommand Определяет выполняемое действие и Паттерн MVVM условие когда данное действие может быть Привязка данных выполнено Конвертация данных Валидация данных Шаблоны данных Команды Фильтрация данных Развертывание
  • 29. Модель команд Паттерн MVVM Привязка данных Конвертация данных Валидация данных Шаблоны данных Команды Фильтрация данных Развертывание
  • 31.
  • 32. Что надо сделать, чтобы выполнить фильтрацию коллекции данных? Получить представление коллекции Паттерн MVVM Привязка данных Конвертация данных Определить условия фильтрации через предикат Валидация данных Шаблоны данных Команды Фильтрация данных Связать представление с предикатом Развертывание
  • 34.
  • 35. WPF Client Profile – 28 MB  Common Language Runtime (CLR)  ClickOnce  Windows Forms  Windows Presentation Foundation  Windows Communication Foundation
  • 37. Что такое связывание данных и как его использовать Как и на каких уровнях возможно производить валидацию данных Как использовать конвертацию данных Как применять шаблоны данных Как использовать команды Каким производить фильтрацию данных средствами WPF Как выполнить развертывание WPF приложения
  • 38. Трешников Павел skype: treshnikov twitter: treshnikov mail: treshnikov@gmail.com Тел./факс: (846) 269-15-20 Группа компаний СМС-Автоматизация www.sms-automation.ru