Евгений Колесников 10 mesi fa
parent
commit
53d31f3052
1 ha cambiato i file con 26 aggiunte e 14 eliminazioni
  1. 26 14
      articles/wpf_window.md

+ 26 - 14
articles/wpf_window.md

@@ -16,17 +16,18 @@
 
 Название окна должно быть осмысленным и с суффиксом *Window*. У меня получилось *DetailWindow*
 
->Можно в каталог `Windows` перетащить и главное окно **MainWindow**. Только в этом случае надо в разметке приложения (`App.xaml`) добавить название каталога:
->
->```xml
-><Application 
->   x:Class="mysql.App"
->   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
->   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
->   xmlns:local="clr-namespace:mysql"
->   StartupUri="Windows/MainWindow.xaml">
->               ^^^^^^^^
->...
+Можно в каталог `Windows` перетащить и главное окно **MainWindow**. Только в этом случае надо в разметке приложения (`App.xaml`) добавить название каталога:
+
+```xml
+<Application 
+   x:Class="mysql.App"
+   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+   xmlns:local="clr-namespace:mysql"
+   StartupUri="Windows/MainWindow.xaml">
+               ^^^^^^^^
+...
+```
 
 Опять же, все окна должны иметь нормальные заголовки. В разметке окна поменяйте атрибут *Title* элемента **Window** (это надо сделать и для основного окна)
 
@@ -43,10 +44,9 @@ public Cat currentCat {get; set;}
 public DetailWindow(Cat currentCat)
                     ^^^^^^^^^^^^^^
 {
+    InitializeComponent();
     // и инициализируем в конструкторе
     this.currentCat = currentCat;
-
-    InitializeComponent();
 }
 ```
 
@@ -69,4 +69,16 @@ private void caListBox_MouseDoubleClick(
 
 Если модальность не важна (логика задачи допускает открытие нескольких окон), то можно использовать метод _Show_.
 
-Добавьте в окно с детальной информацией кнопку "OK" и добавьте ей свойство `IsCancel="true"`, чтобы окно закрывалось по клавише "Escape".
+Добавьте в окно с детальной информацией кнопку "OK" и добавьте ей свойство `IsCancel="true"`, чтобы окно закрывалось по клавише "Escape".
+
+---
+
+## Задание
+
+1. Добавьте в модель **Cat** свойства: 
+    - _есть прививка_ (**Boolean**)
+    - _дата прививки_ (**DateTime**)
+1. Выведите в модальном окне все поля модели **Cat**.       
+    - Поле _есть прививка_ отображать чекбоксом, 
+    - поле _дата прививки_ отображать только если _есть прививка_ (использовать аттрибут _Visibility_), 
+    - содержимое поля _дата прививки_ выводить используя конвертер