2016-06-27 6 views
0

Я хочу сопоставить одно свойство в моей модели ViewModel с несколькими свойствами в моем представлении, используя IMultiValueConverter, но я заметил, что карты Convert много-к одному, метод ConvertBack сопоставляет один-много.Двухстороннее многопользовательское однопользовательское свойство в ViewModel для нескольких свойств в представлении - могу ли я вернуть IMultiValueConverter?

Проблема в том, мне нужно, чтобы это было отменено, то есть, я хочу иметь несколько свойств в представлении зависеть от одного свойства в ViewModel, а для этого нужно поменять местами Convert и ConvertBack подписи (или вызовов).

Есть ли способ для MultiBinding вместо метода ConvertBack вместо Convert и наоборот?

+0

Существует только способ отменить «IMultiValueConverter», если базовая функция преобразования имеет обратную. Это математика. –

+0

@ H.B. Я редактировал вопрос. Я имел в виду, что мне понадобится метод Convert, который будет вызываться вместо 'ConvertBack' и наоборот, поскольку MultiBinding является преобразованием« один ко многим », но обычно он генерирует одно значение для представления из нескольких значений в ViewModel, и мне нужно обратное: многие свойства в представлении отображения для одного свойства в ViewModel. – heltonbiker

ответ

1

Это звучит как случай для обычного конвертера, где вы просто выделяете требуемое значение и читаете/записываете это.

В качестве альтернативы можно написать удобные свойства и привязать их к ним.

+0

Я уже думал об этом ... Попробуй попробовать и, возможно, подожди больше ответов, но я думаю, что это довольно правильный подход, спасибо! – heltonbiker

+0

Мне не удалось сделать это в двух направлениях. Когда я изменяю одно из свойств в представлении, связанный объект не обновляется. Итак, скажем, у меня есть свойство Interval' с свойствами 'Start' и' End', когда я изменяю свойство 'End' (используя слайдер), я не получаю новый экземпляр Interval в ViewModel. – heltonbiker

+0

Ну, это 'Интервал' структура? Это потребует от вас назначения нового экземпляра. –