Страницы

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

среда, 22 января 2020 г.

Binding ConverterParameter={Binding …}

#c_sharp #net #wpf #xaml


Мне нужно в качестве параметра для конвертера указать 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
    


Ответы

Ответ 1



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

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

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