Quellcode durchsuchen

предисловие к лабам

Евгений Колесников vor 2 Jahren
Ursprung
Commit
f3682c8fe9
3 geänderte Dateien mit 74 neuen und 0 gelöschten Zeilen
  1. 48 0
      articles/cs_misc.md
  2. 20 0
      articles/sprint_lab.md
  3. 6 0
      readme.md

+ 48 - 0
articles/cs_misc.md

@@ -0,0 +1,48 @@
+# Разное
+
+В этой лекции будут свалены материалы, не вошедшие в другие лекции, но всплавшие при решении лабораторных работ
+
+* [Всплывающие подсказки](#всплывающие-подсказки)
+
+<!-- TODO 
+- контекстное меню 
+- валидация полей
+- маска ввода
+- чекбокс
+- размер файла
+-->
+
+## Всплывающие подсказки
+
+Всплывающие подсказки, это блок с дополнительной информацией, появляющийся при наведении курсора на объект.
+
+Можно реализовать двумя вариантами:
+
+1. Подсказка **простой текст**: просто добавляем атрибут `ToolTip.Tip` к нашему визуальному элементу
+
+    ```xml
+    <Image
+        ...
+        ToolTip.Tip="Текст подсказки"/>
+    ```
+
+1. В подсказке хотите показать **сложную комбинацию** (картинка + описание, многострочный текст): добавляем к элементу вложенный тег
+
+    ```xml
+    <Image ...>
+
+        <ToolTip.Tip>
+            <StackPanel>
+                <TextBlock Classes="h1">
+                    ToolTip
+                </TextBlock>
+                <TextBlock Classes="h2">
+                    A control which pops up a hint when a control is hovered
+                </TextBlock>
+            </StackPanel>
+        </ToolTip.Tip>
+
+    </Image>
+    ```
+
+Естественно вместо фиксированного текста можете сделать привязку (binding) к вычисляемому свойству класса.

+ 20 - 0
articles/sprint_lab.md

@@ -0,0 +1,20 @@
+# Замечания по итогам и предисловие для следующих поколений
+
+- лабораторные работы проводятся на локальном сервере колледжа (недоступны из дома);
+- адрес сервера в локальной сети (**mysql**): `192.168.3.32`;
+- адрес git-сервера (**gogs**): `192.168.3.32:3000`;
+
+Лаборатроные работы проводятся по заданиям демо-экзаменов предыдущих лет с оценкой по критериям демо-экзамена.
+
+## На что обратить внимание
+
+1. Типы связей в диаграмме прецедентов стандартизованы (их всего 4). Не надо рисовать что попало. В задании не акцентировано, но диаграмма прецедентов делается для **всей** предметной области.
+
+1. На сервере **mysql** кодировка баз по-умолчанию *latin*, перед созданием своих таблиц поменяйте на *utb8mb4* (либо при создании таблиц указывайте эту кодировку).
+
+1. Часто встречается задача типа "продукт может иметь связанные продукты". Это классическая связь *многие-ко-многим*, т.е. у продукта может быть много связанных продуктов и у связанного продукта может быть много родителей (продуктов, к которым он привязан). Решается добавлением таблицы связей, внешние ключи которой (например, *parent_id* и *child_id*) ссылаются на одну и ту же таблицу продукции.
+
+1. При клике кнопкой мыши на визуальный объект параметр *sender* в обработчике указывает на объект по которому кликнули. Если это элемент списка (**ListBox**), то можно явно приводить к нужному типу, а если просто кнопка ("массовая смена продукции", "удаление продукции" и т.п.), то для получения экземпляра объекта вы должны использовать не *sender*, а нужный объект (например, **ProductListBox**), причём сначала убедиться, что в списке есть выделенный элемент (**SelectedItem**).
+
+1. У **ListBox**-а два очень похожих по названию свойства: *SelectedItem* (активный элемент списка) и _SelectedItem**s**_ (несколько активных элементов списка, если разрешен мультивыбор).
+

+ 6 - 0
readme.md

@@ -355,6 +355,12 @@ https://office-menu.ru/uroki-sql Уроки SQL
 
 1. [HTTP запросы в C#. Получение списка материалов выбранного продукта. Авторизация.](./articles/cs_http.md)
 
+1. [Разное](./articles/cs_misc.md)
+
+**Лабораторные работы**
+
+1. [Замечания по итогам и предисловие для следующих поколений](./articles/sprint_lab.md)
+
 <!-- 1. [C# Параллельное программирование и асинхронность](./articles/cs_async_await.md) -->
 
 <!-- ## Тема 6. Разбор заданий предыдущих лет.