Страницы

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

понедельник, 13 апреля 2020 г.

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

#wpf #mvvm

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


Ответы

Ответ 1



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

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

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