- В XAML написано, к какому классу относится этот XAML. При сборке приложения берется XAML, по нему определяется, какой нужен класс, и лишь затем создается объект класса
- От запуска приложения до начала его работы может пройти какое-то время, пока приложение инициализируется. В это время можно показать картинку SplashScreen
- Первое созданное в приложении окно по умолчанию считается главным
- Если на старте приложения (функция Startup) надо только открыть окно (или страницу в браузерном приложении), то можно не писать функцию Startup (может называться по-другому) в коде, а указать это окно или страницу в XAML приложения
- В функции Startup (может называться по-другому) происходит обработка аргументов командной строки
- В XAML можно указать сопоставление событий и функций обработки событий (например, указать функции обработки активации/деактивации окна)
- Можно поймать в дверях Unhandled Exception с помощью обработчика DispatcherUnhandledException и как минимум более корректно завершить работу приложения и сказать пользователю об ошибке. А как максимум сделать, чтобы приложение продолжило работу
- Мы можем привязываться не только полностью к Collection View, но также и к "текущему" элементу коллекции и к определенному полю внутри коллекции. Возможны вложенные коллекции и привязка к их View. "Текущий элемент" - например, последний выделенный
- DataTemplate - как именно отображать элемент Collection View в UI. Позволяет не только выбрать информацию к отображению, но и "сделать красиво" (причем по-разному в зависимости от параметров отображаемого элемента коллекции). То, что не зависит от параметров отображаемого элемента, лучше настраивать через настройки UI в целом
- Возможно выбирать конкретный Template в зависимости от параметров элемента Collection View (и отображать элементы _совсем_ по-разному), но это уже делается в коде
- ValidationRule - проверка того, что введенные в элемент UI данные можно конвертировать в привязанную к этому элементу переменную. Есть стандартные, можно создавать свои. Как именно выглядит уведомление об ошибке - тоже можно задавать
- Валидация может быть как до конвертации строки в значение (например, что в строке число), так и после (например, что это число в указанных пределах). Также может быть какая-то валидация после присвоения значения привязанной переменной
- По умолчанию ListBox, привязанный к коллекции, берет от элемента .ToString, и иногда достаточно переопределить ToString
- Реально дофига всего можно сделать с Data Binding именно через XAML, не залезая в код. Например, привязаться к Enum. Или задать конкретные параметры для функции валидации
Если создается пользовательский класс, объект которого к чему-то привязывается, то:
- Если будет передача данных от объекта, то нужны уведомления об изменениях
- Свойства объекта, используемые при привязке, должны быть public
- Невозможно привязаться к полям
MSDN можно переключить на американскую версию. Но для этого нужно прокрутить до самого низа страницы. Там слева будет переключатель.
Лучшее
Материалы сайта предназначены для лиц старше 16 лет (16+)