Страницы

Поиск по вопросам

суббота, 6 июля 2019 г.

Обязательно ли все свойства биндить?

Интересует: обязательно ли все свойства биндить (например, видимость, label content, IsReadOnly) или же можно передавать в ViewModel объект Вида через конструктор, а также какие есть еще обязательные правила или рекомендации при использовании MVVM. Большое спасибо за помощь.


Ответ

Такой вопрос у меня обычно возникал, когда я не мог связать логику взаимодействия различных компонентов приложения. У меня было сильное искушение просто добавить объект в ViewModel. Моя рекомендация - детально разработать на листе бумаги иерархию компонентов, продумать хорошо XAML, не лениться писать кажущийся длинный код ViewModel, так как потом он себя окупит меньшими временными затратами на доработку и понимание, так как все будет структурировано. Плюс к этому вы получите хороший опыт разработки распределенных приложений (если оно у вас таковое), навыки создания более "чистого" кода. Насчет биндинга: Биндить нужно только то, что требует зависимости от данных или логики кода. В большинстве случаев мелкие нюансы убираются лучшим знанием XAML (у него есть набор Trigger, State, Storyboard, Command, element-property->property-element etc). Также если хочется что-то кастомизировать "в комплекте" - есть динамическая загрузка стилей --- Создал макет, прикрепил его к ресурсам (через Key), потом если что загрузил новый словарь ресурсов и все значения стилей, кистей и т.п. См. шаблон Visual Studio - CustomControl Насчет связи компонентов: в WPF (как и в C#) есть очень удобная вещь - Prism. Всю ее можно и не знать сразу, но вот к примеру EventAggregator очень даже полезен при связи компонентов. Если у вас разные компоненты, которые не знают друг о друге ничего, то он вам очень поможет. Также для общего представления о связывании я почитал бы на MSDN про MEF.

Комментариев нет:

Отправить комментарий