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).

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


 

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

2518. Определение ускорения силы тяжести при помощи оборотного маятника 307 KB
  Большинство косвенных методов измерения ускорения силы тяжести g основано на использовании известной формулы для: периода Т колебаний физического маятника. Измерение ускорения силы тяжести при помощи оборотного маятника.
2519. Способы определение удельного заряда электрона методом магнетрона 48.15 KB
  В пределах точности эксперимента электрон – стабильная частица. Характер движения и траектория заряженной частицы зависят не от ее заряда или массы в отдельности. Измеряя скорости и траектории частиц, движущихся в электрических и магнитных полях, можно определить величину и знак удельного заряда.
2520. Изучение абсолютно упругого удара шаров 270.56 KB
  Изучение способов определения скорости тел до и после удара на основе законов сохранения, обоснование в процессе выполнения третьего закона Ньютона при упругом ударе тел.
2521. Определение концентрации носителей заряда и подвижности в полупроводниках различного типа 208.6 KB
  Измерили концентрацию носителей заряда и подвижности в полупроводниках различного типа. Установка для измерения концентрации и подвижности носителей заряда.
2522. Определение момента инерции Волочка 49.45 KB
  Изучение динамики сложного движения, сочетающего вращательное движение тела его поступательным перемещением, и определение его момента инерции.
2523. Эффект Рамзауэра 145.76 KB
  Цель работы: познакомиться с сутью эффекта Рамзауэра, изучить рассеяние электронов на атомах ксенона и определить глубину и ширину потенциальной ямы.
2524. Соотношение неопределенностей для фотонов 186.65 KB
  Цель работы: исследовать дифракцию света на узкой щели, объяснить дифракционную картину с волновой точки зрения и с помощью соотношения неопределенностей.
2525. Интерференция света. Кольца Ньютона 138.29 KB
  Цель работы: Получить на экране кольца Ньютона, используя красный и зеленый светофильтры, измерить радиусы нескольких колец, расстояния d1 и d2, рассчитать радиус кривизны линзы.
2526. Электропроводность полупроводников и металлов 130.25 KB
  Цель работы: изучить основы теории электропроводности полупроводников и металлов. Исследовать температурные зависимости для Cu (меди) и Si (кремния), качественно их сравнить.