WPF: привязка управления - запуск IValueConverter из кода C # - PullRequest
1 голос
/ 17 июля 2009

В своем коде XAML я связал свойство Высота элемента управления с ActualHeight для его родительского элемента управления. Потому что мне нужно вычислить смещение от исходного значения, которое я использую, и IValueConverter.

Height="{Binding ElementName=MainCanvas, Path=ActualHeight, Converter={StaticResource adjustVerteilung} , ConverterParameter= 12}"

Пока все отлично.

После некоторого события формула внутри ValueConverter действительно изменяется и генерирует другой вывод. Но элементы управления обновляются и выравниваются только после изменения размера моего окна. Есть ли способ сообщить элементу управления (из кода C #) обновить себя и получить новое значение из ValueConverter?

Ответы [ 2 ]

1 голос
/ 17 июля 2009

Если вы добавите UpdateSourceTrigger = PropertyChanged к вашей привязке, она должна повторно привязаться к значению, как только изменится фактическая высота, а не после изменения размера окна и обновления привязок MainCanvas.

0 голосов
/ 25 сентября 2009

Я думаю, что вы хотите изменить значение, даже если ActualHeight не изменится. На самом деле, функция ValueConverter не предназначена для чего-то подобного.

Вы должны попробовать что-то другое. Если на самом деле это наблюдаемая высота, которую вы хотите обновить, когда происходит «какое-то событие», возможно, вы можете попробовать создать собственную панель, чье «свойство» каким-то образом связано с вашим событием. Затем, когда происходит «какое-то событие», вы можете изменить наблюдаемую высоту элемента (ов), который находится внутри панели.

...