Когда использовать конвертеры значений в приложении mvvm? - PullRequest
1 голос
/ 10 февраля 2010

Если кто-то реализует приложение WPF с использованием шаблона проектирования MVVM, есть ли ситуации, в которых можно использовать преобразователи значений? Мне кажется, что преобразователи значений делают то же самое, что и модель представления, то есть готовит данные для представления.

Итак, есть ли хорошее применение для преобразователей значений?

С наилучшими пожеланиями
Оливер Ханаппи

Ответы [ 2 ]

8 голосов
/ 10 февраля 2010

Преобразователи значений удобны для перевода логических состояний в визуальные состояния, которые имеют отношение только к пользовательскому интерфейсу. Например, преобразователь BooleanToVisibility имеет свое место в приложении MVVM.

Однако я бы никогда не рекомендовал использовать конвертеры для выполнения какого-либо сложного преобразования с различными входными параметрами или для вызова любой бизнес-логики в их реализации. Это виртуальные вещи.

6 голосов
/ 10 февраля 2010

Этот вопрос у меня в голове, потому что я написал целую кучу конвертеров значений для своего проекта, прежде чем понял, что могу просто делать все это в моей модели представления. Я все еще использую их - я просто не ссылаюсь на них из XAML; моя модель представления вызывает их явно.

На самом деле полезно отделить преобразование значений от модели представления, даже если вы не собираетесь вызывать преобразователи значений из XAML, а просто вызывать их из модели представления. Это делает логику преобразования значений проще для тестирования, более пригодной для повторного использования и компоновки. Я даже использую преобразователи значений в слое доступа к данным моей модели без видимого вреда.

...