|
|
@@ -10,7 +10,7 @@
|
|
|
|
|
|
* В левой колонке **(1)** у нас будет элемент **StackPanel**, объединяющий все три строки. В нём будут находится логотип компании и основное меню приложения. Эта колонка имеет фиксированную ширину.
|
|
|
|
|
|
-* В верхней строке правой колонки **(2)** будет расположено контекстное меню для элементов фильтрации, поиска и т.д. Эта строка имеет высоту "Auto", т.е. будет зависеть от содержимого.
|
|
|
+* В верхней строке правой колонки **(2)** будет расположено меню для элементов фильтрации, поиска и т.д. Эта строка имеет высоту "Auto", т.е. будет зависеть от содержимого.
|
|
|
|
|
|
* В середине второй колонки **(3)** будет расположен основной список с данными: элементы **DataGrid** или **ListView**
|
|
|
|
|
|
@@ -96,12 +96,12 @@
|
|
|
|
|
|
>Студия может не добавить модификатор доступа классам - допишите **public**
|
|
|
|
|
|
-1. Для работы с данными создадим интерфейс **IDataProvider** (поставщик данных) и класс **LocalDataProvider**, реализующий этот интерфейс
|
|
|
+1. Для работы с данными создадим интерфейс **IDataProvider** (поставщик данных) и класс **LocalDataProvider**, реализующий этот интерфейс (это уже не модель, а прочие классы, поэтому их создаём в каталоге `Classes`)
|
|
|
|
|
|
В интерфейсе нам пока нужен только один метод: получение списка кошек
|
|
|
|
|
|
```cs
|
|
|
- namespace WpfTemplate.Model
|
|
|
+ namespace WpfTemplate.Classes
|
|
|
{
|
|
|
interface IDataProvider
|
|
|
{
|
|
|
@@ -113,27 +113,30 @@
|
|
|
Метод *GetCats* класса **LocalDataProvider** возвращает список кошек, созданный программно
|
|
|
|
|
|
```cs
|
|
|
- public class LocalDataProvider : IDataProvider
|
|
|
+ namespace WpfTemplate.Classes
|
|
|
{
|
|
|
- public IEnumerable<Cat> getCats()
|
|
|
+ public class LocalDataProvider : IDataProvider
|
|
|
{
|
|
|
- return new Cat[]{
|
|
|
- new Cat{
|
|
|
- age=1,
|
|
|
- breed = new CatBreed() { title = "Дворняжка" },
|
|
|
- color="Белый",
|
|
|
- name="Ириска"},
|
|
|
- new Cat{
|
|
|
- age=2,
|
|
|
- breed = new CatBreed() { title = "Шотландская вислоухая" },
|
|
|
- color="Коричневый",
|
|
|
- name="Изи"},
|
|
|
- new Cat{
|
|
|
- age=3,
|
|
|
- breed = new CatBreed() { title = "Сиамский" },
|
|
|
- color="Цветной",
|
|
|
- name="Макс"}
|
|
|
- };
|
|
|
+ public IEnumerable<Cat> getCats()
|
|
|
+ {
|
|
|
+ return new Cat[]{
|
|
|
+ new Cat{
|
|
|
+ age=1,
|
|
|
+ breed = new CatBreed() { title = "Дворняжка" },
|
|
|
+ color="Белый",
|
|
|
+ name="Ириска"},
|
|
|
+ new Cat{
|
|
|
+ age=2,
|
|
|
+ breed = new CatBreed() { title = "Шотландская вислоухая" },
|
|
|
+ color="Коричневый",
|
|
|
+ name="Изи"},
|
|
|
+ new Cat{
|
|
|
+ age=3,
|
|
|
+ breed = new CatBreed() { title = "Сиамский" },
|
|
|
+ color="Цветной",
|
|
|
+ name="Макс"}
|
|
|
+ };
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
@@ -141,9 +144,12 @@
|
|
|
1. В пространстве имен проекта создадим класс **Globals**, в котором объявим публичную статическую переменную *dataProvider* типа **IDataProvider**:
|
|
|
|
|
|
```cs
|
|
|
- class Globals
|
|
|
+ namespace WpfTemplate.Classes
|
|
|
{
|
|
|
- public static IDataProvider dataProvider;
|
|
|
+ class Globals
|
|
|
+ {
|
|
|
+ public static IDataProvider dataProvider;
|
|
|
+ }
|
|
|
}
|
|
|
```
|
|
|
|
|
|
@@ -217,4 +223,11 @@
|
|
|
|
|
|
Реализовать приложение из лекции и оформить отчет со скриншотами в репозиторий.
|
|
|
|
|
|
+**Требования к репозиторию:**
|
|
|
+
|
|
|
+- в репозитории должны быть исходные коды проекта (весь каталог проекта)
|
|
|
+- в проекте должен быть файл `.gitignore`, и не должно быть бинарных файлов (каталоги `bin` и `obj` для C#)
|
|
|
+- в репозитории должен быть файл `readme.md` с отчётом о проекте
|
|
|
+- в отчёте должны быть: заголовок (с названием конспекта или лабораторной), блоки кода (не весь проект, а только наиболее важные куски, относящиеся к теме лекции/лабораторной) и скриншоты работающего приложения.
|
|
|
+
|
|
|
[Элементы управления](./t8_elements.md) | [Содержание](../readme.md#тема-8-оконные-приложения) | [Фильтрация данных](./wpf_filtering.md)
|