41909

Простое приложение Windows Presentation Foundation

Лабораторная работа

Информатика, кибернетика и программирование

Реализовать отображение свойств объекта сущности по своему варианту задания наподобие того как это сделано в демонстрационном приложении. Реализовать загрузку коллекции объектов из файла наподобие того как это сделано в демонстрационном приложении название файла вводить например через TextBox. Реализовать выбор редактируемого объекта через ввод ключевого свойства. Этого нет в примере Реализовать удаление объекта из коллекции.

Русский

2013-10-26

19.29 KB

32 чел.

Лабораторная №4. Простое приложение Windows Presentation Foundation.

Длительность: 8 часов. Да, всего 8 часов!

Теоретическая часть

Необходимо изучить:

  1. Шаблон Model-View-ViewModel (MVVM)
  2. Привязка данных модели к элементам управления пользовательского интерфейса в WPF (Binding)
  3. Команды в WPF и класс RelayCommand
  4. Основные элементы форм и элементов управления WPF, их свойства и способ описания на языке xaml:
  5.  Grid
  6.  StackPanel
  7.  Label
  8.  TextBox
  9.  Button

По WPF написаны тонны книг. Можно пытаться сэкономить время, не ходя на занятия, а эти книжки прочитать самостоятельно (начните с Троелсена в 1400 страниц). А можно сходить на лабораторную, где за 20 минут вам объяснят самое главное.

Практическая часть

Используя среду разработки MS Visual Studio 2010 необходимо добавить в проект, созданный на третьей л/р, следующий функционал.

Часть 1. Повторить функционал прилагаемого примера

Добавить в солюшен новый проект: приложение WPF. Создать главное окно, класс ViewModelLocator, MainViewModel по примеру демонстрационного проекта. Класс RelayCommand скопировать из демонстрационного проекта.

Реализовать отображение свойств объекта сущности (по своему варианту задания) наподобие того, как это сделано в демонстрационном приложении. Все свойства должны быть редактируемы, кроме вычисляемого свойства.

Реализовать загрузку коллекции объектов из файла наподобие того, как это сделано в демонстрационном приложении (название файла вводить, например, через TextBox). Реализовать выбор редактируемого объекта через ввод ключевого свойства.

Жёстких требований к интерфейсным решениям нет. Можете попробовать сделать не как в примере, а красиво.

Часть 2. Этого нет в примере

Реализовать удаление объекта из коллекции.

Реализовать создание нового объекта.

Реализовать сохранение изменённой коллекции в файл. Код, выполняющий сохранение, разумно реализовать в том же классе, который уже осуществляет загрузку из файла. Таким образом, этот класс будет отвечать за работу с внешними источниками данных и приложение будет ещё чётче разделяться на архитектурные слои:

  1. Слой интерфейса пользователя (User Interface Layer)
  2. Слой бизнес-логики (Business Logic Layer)
  3. Слой доступа к данным (Data Access Layer)

Часть 3. Требования

Консольное приложение должно работать, как и прежде. Вообще, если классы библиотеки классов были написаны правильно (в соответствии с требованиями 3-й лабораторной), код библиотеки должен поменяться только в части класса, ответственного за сохранение данных в файл. Менять код консольного приложения вообще не должно возникнуть необходимости.

Архитектура WPF-проекта должна соответствовать шаблону MVVM, в частности:

  1. действия, инициируемые пользователем, должны быть реализованы, как WPF-команды (удобно использовать класс RelayCommand, как в примере);
  2. код ViewModel не должен иметь зависимостей от View (главного окна приложения);
  3.  View должен содержать, по возможности, только декларативное описание интерфейса на языке xaml (то, что для главного окна хранится в файле MainWindow.xaml)и не должен содержать логики в code-behind файле (для главного окна хранится в файле MainWindow.cs).

Впрочем, нарушение этих правил почти сразу усложнит написание и отладку приложения, в этом случае создание качественного кода будет даже проще, чем некачественного.


 

А также другие работы, которые могут Вас заинтересовать

43506. Теория телетрафика 276.5 KB
  Как видно из расчетов, величина расчетной нагрузки возрастает с увеличением математического ожидания, но зависимость эта не линейна. С увеличением значения нагрузки, относительное отклонение расчетной нагрузки от ее математического ожидания уменьшается.
43507. ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ. МЕТОДИЧЕСКИЕ УКАЗАНИЯ И ЗАДАНИЯ 66 KB
  Последовательность выполнения работы Разработку курсового задания рекомендуется проводить в следующей последовательности: математическая формулировка задачи; выбор численного метода ее решения; построение схемы алгоритма решения задачи; разработка программы; проведение испытаний отладка программы; анализ результатов счета; оформление расчетнопояснительной записки. Указания к оформлению расчетнопояснительной записки Отчет по работе оформляется в виде расчетнопояснительной записки которая должна содержать следующие черты: титульный лист;...
43509. СОЗДАНИЕ МАРКШЕЙДЕРСКОГО–ГЕОДЕЗИЧЕСКОГО ОБОСНОВАНИЯ И ПРОИЗВОДСТВА ТОПОГРАФИЧЕСКОЙ СЪЕМКИ В МАСШТАБЕ 1:2000 ГОРНОДОБЫВАЮЩЕГО ПРЕДПРИЯТИЯ 39.5 KB
  Высоты пунктов съемочного обоснования определить методом технического или спутникового нивелирования. ИСХОДНЫЕ ДАННЫЕ: Топографическая карта растр масштаба 1:100 000 с нанесенными на ней: территория горнодобывающего предприятия; пункты исходного геодезического обоснования ГГС: полигонометрия или триангуляция 4 класса точности с отметками определенными из нивелирования III класса все доступные на исходной топографической карте. Проект опорного планововысотного обоснования.
43510. Финансирование энергосберегающих проектов предприятий электроэнергетики за счёт собственных средств 313 KB
  Ухта мощностью 150 Гкал ч объект: Ухтинские тепловые сети; 2 Реконструкция теплоснабжения поселка Бельгоп г.Ухта объект: Ухтинские тепловые сети; 3 Оснащение дутьевых вентиляторов котлоагрегатов частотными приводами объект: Сосногорская ТЭЦ; 4 Внедрение системы непрерывной очистки трубокконденсаторов шарикоочистка с эластичными шариками объект: Сосногорская ТЭЦ; 5 Оснащение насосного оборудования центральных тепловых пунктов частотными приводами объект: Сосногорская ТЭЦ; 6 Подача тепла на теплофикационную установку...
43511. Внутренний аудит процесса «Управление записями в отделе сервисного обслуживания» на ЗАО «Компания Новгородский Завод ГАРО» 882 KB
  Основным процессом поставщиком для данного процесса является «Оформление и предоставление актов работ», в ходе которого инженеры, совместно с потребителями продукции ГАРО, составляют акты о проведенных работах, а секретарь ОС ведет реестр актов работ и является ответственным за хранение записей и предоставление их для дальнейшего использования.
43512. Анализ технико-экономического показателей работы промышленного предприятия 755.5 KB
  Одним из важнейших разделов анализа работы предприятия является анализ трудовых ресурсов. Его цель - в выявлении резервов роста производительности труда, улучшении нормирования, организации и условий труда, снижении себестоимости продукции, то есть важнейших технико-экономических показателей.
43513. РАСПРОСТРАНЕНИЕ РАДИОВОЛН И АНТЕННО-ФИДЕРНЫЕ УСТРОЙСТВА 264.5 KB
  Технические требования на проектируемую антенну номер канала дБ коэффициент усиления бортовой передающей антенны дБВт уровень мощности на входе малошумящего приемного устройства м протяженность радиолинии ИСЗ Земля модуль характеризующий потери в атмосфере Земли. С тех пор двойные зеркальные телескопы носят название телескопов Кассегрена и это название было распространено на антенны с аналогичным принципом конструкции зеркал. Антенны Кассегрена в настоящее время являются широко...
43514. Разрабоика схемы тахометра 154.5 KB
  Параметры счетчика: Счетчик считает обороты в течении 10 секунд и поэтому необходимо делить входной сигнал на 10 чтобы соблюсти соответствие с оборотами в минуту. Алгоритм работы тахометра На вход устройства подается сигнал tkt; Счетчику D присваивается значение Dtkt; Если счетчик D досчитал до 10 тогда переход к п.4; Счетчику Ct присваивается значение Hrz1 ; Если счетчик Ct досчитал до 10то переход к п. Формируется сигнал записи Cwr ; По сигналу Cwr происходит запись результата в регистр W; Сигналом...