При работе в WPF во XAML приходится писать много выражений связывания контролов с property ViewModel. Все хорошо, но приходится помнить имена property и очень высока вероятность ошибки.
Для того, что бы упроситить себе жизнь, надо заставить IntelliSense помогать, показывая доступные на ViewModel property. Как оказалось, все достаточно просто.
Обычно (при подходе view-first) конструктор View выглядит следующим образом:
View создается через IoC контейнер, который сам создает ViewModel. Т.е. типизация DataContext происходит динамически и в режиме дизайна недоступна для использования, ну это конечно не совсем верно, но для упращения будем считать так.
Для того, что бы точно указать тип используемой ViewModel на момент дизайна view, и позволить IntelliSense делать подсказки, необходимо выполнить следующий порядок действий:
1. Изменение ViewModel
Необходимо создать во ViewModel конструктор по умолчанию, без параметров. В реальной жизни, такой конструктор обычно не используется, т.к. ViewModel необходимы внешние сервисы. Поэтому при создании ViewModel в run-time через IoC контейнер, сработает конструктор с максимальным количеством элементов (если конечно, другое не указано специальным способом).
2. Внести изменения в XAML объявления.
В декларативную часть объявления View, мы добавляем ссылку на ViewModel и указываем DataContext в режиме дизайна.
После этого, у нас прекрасно срабатывает IntelliSense, показывая доступные property ViewModel
Для того, что бы упроситить себе жизнь, надо заставить IntelliSense помогать, показывая доступные на ViewModel property. Как оказалось, все достаточно просто.
Обычно (при подходе view-first) конструктор View выглядит следующим образом:
View создается через IoC контейнер, который сам создает ViewModel. Т.е. типизация DataContext происходит динамически и в режиме дизайна недоступна для использования, ну это конечно не совсем верно, но для упращения будем считать так.
Для того, что бы точно указать тип используемой ViewModel на момент дизайна view, и позволить IntelliSense делать подсказки, необходимо выполнить следующий порядок действий:
1. Изменение ViewModel
Необходимо создать во ViewModel конструктор по умолчанию, без параметров. В реальной жизни, такой конструктор обычно не используется, т.к. ViewModel необходимы внешние сервисы. Поэтому при создании ViewModel в run-time через IoC контейнер, сработает конструктор с максимальным количеством элементов (если конечно, другое не указано специальным способом).
2. Внести изменения в XAML объявления.
В декларативную часть объявления View, мы добавляем ссылку на ViewModel и указываем DataContext в режиме дизайна.
После этого, у нас прекрасно срабатывает IntelliSense, показывая доступные property ViewModel
Комментариев нет :
Отправить комментарий