Передача более 1 аргумента в конвертер - PullRequest
10 голосов
/ 05 февраля 2010

Вопрос: Как передать экземпляр объекта из модели представления в преобразователь вместе со значением, которое нужно преобразовать в преобразователь?


Информация: я работаю над программой инвентаризации для людей на нашей фабрике, которые получают входящие грузы. При получении груза они будут отмечать, кем была транспортная компания и кто был водителем. Для этого я хочу создать пару комбо-боксов. Когда они выбирают поле со списком грузоотправителя и выбирают грузоотправителя, поле со списком водителя будет отражать это изменение.

Мой план состоит в том, чтобы в моем ShipmentViewModel был список грузоотправителей (у которых есть список водителей), с которым связывается поле со списком грузоотправителя. Этот список грузоотправителей - только список GUID, который я извлекаю из базы данных. грузоотправитель будет иметь отдельное свойство как для грузоотправителя, так и для выбранного водителя.

Что я хотел бы сделать, это передать экземпляр списка отправителя конвертеру вместе с GUID отправителя (получено от ShipmentVM). Преобразователь сравнивает GUID со списком грузоотправителей и возвращает в поле со списком экземпляр ShipperVM. поле со списком драйверов является привязкой к списку драйверов ShipperVM. Передайте этот список вместе с GUID водителя (также полученного из ShipmentVM) другому конвертеру, который возвращает имя водителя.

Я программирую на Visual Basic и XAML в соответствии со схемой M-V-VM.

P.S. Сказав: «Вы не можете передать более 1 аргумента конвертеру». это абсолютно законный ответ. Мне просто нужно подтверждение. Я начинаю думать, что это так ...

1 Ответ

15 голосов
/ 11 февраля 2010

Если вам нужно передать несколько «вещей» в преобразователь, то на самом деле вам нужен MultiValueConverter, который может принимать N входных значений.

http://msdn.microsoft.com/en-us/library/system.windows.data.imultivalueconverter.aspx

...