Евгений Колесников преди 11 месеца
родител
ревизия
865498435f
променени са 1 файла, в които са добавени 37 реда и са изтрити 24 реда
  1. 37 24
      articles/wpf_template.md

+ 37 - 24
articles/wpf_template.md

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