Страницы

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

среда, 13 марта 2019 г.

Binding ConverterParameter={Binding …}

Мне нужно в качестве параметра для конвертера указать Binding, но это невозможно, так как ConverterParameter не является DependencyProperty
Все решения, которые я нашел в сети, подразумевали использование MultiBinding и это работало. Пока мне не потребовалась обратная конвертация. Подскажите как быть.
UPD
Пришлось много чего писать в комментариях, перенесу это сюда на всякий случай.
Конвертер принимает V (Value) P (Parameter) а на выходе ждет R (Result)
Обратная конвертация устроена так же.
Если я использую MultiBinding, то конвертер будет принимать V[] (Values) и на выходе ожидать R (Result)
Обратная конвертация будет принимать V (Value) а на выходе ждать R[] (Results)
Но у меня на самом деле есть 3 переменные (a,b,c). a = b * c
То есть для вычисления любой из этих переменных мне нужны две другие. А в случае с мультибиндингом мне предлагает в обратной конвертации восстановить b и с из a


Ответ

ConverterParameter не является DependencyProperty, и не подхватывает изменения. Таким образом, простое использование ConverterParameter
Необходимо использовать более честный подход. Заведите отдельный класс, который будет заниматься отображением точек модели в пиксельные координаты. Экземпляр этого класса и можно передавать в качестве параметра в конвертер.
(реальный пример кода приведу позже)

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

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