Скажем, у меня есть представление, связанное с ViewModel A, которое имеет наблюдаемую коллекцию Клиенты.
Преимущество этого шаблона MVVM заключается в том, что я также могу привязать представление к ViewModel B, которое заполняет его разными данными.
Но что делать, если в моем конверторе Конвертер конверсий отображать моих клиентов, например. У меня есть "ContractToCustomerConverter", который принимает Контракт и возвращает соответствующего Клиента для отображения.
Проблема заключается в том, что преобразователь существует вне шаблона MVVM и, следовательно, не знает, что у моего ViewModel есть другой источник для клиентов.
- Есть ли способ, чтобы View передал ViewModel в конвертер, чтобы он участвовал в развязке, которую предоставляет шаблон MVVM?
- Есть ли способ для меня каким-то образом включить конвертер в мой ViewModel, чтобы конвертер использовал текущие зависимости, доступные ViewModel?
- или являются конверторами только прославленных кодовых и поэтому не используются в шаблоне MVVM, поэтому, если вы используете MVVM, тогда вы просто создаете свои собственные "конвертеры" (методы в вашем классе ViewModel), которые вернуть объекты, такие как объекты изображения, объекты видимости, FlowDocuments и т.д., которые будут использоваться в представлении, вместо использования конвертеров вообще?
(Я столкнулся с этими вопросами после просмотра использования конвертеров в демонстрационном приложении WPF, которое поставляется с загрузкой шаблона MVVM Template Toolkit, см. "Messenger Sample" после распаковки.)