получить контекст в конвертере? - PullRequest
1 голос
/ 07 декабря 2010

У меня есть usercontrol, контекст которого является заданным объектом Foo.

У меня есть текстовое поле в режиме только для чтения, текст которого изменяется в соответствии с выбранным значением в поле со списком (которое связывается в двух направлениях). Значение текстового поля использует значения множества полей в Foo.

На данный момент я написал конвертер Text="{Binding ComboboxValue, Converter={StaticResource MyTextConverter}}, и с помощью кода, согласно ComboboxValue, мне нужно вернуть строку, составленную из других значений Foo. Проблема в том, что я не могу получить доступ к DataContext в конвертере и не могу передать его. Если я связываю контекст без Path (используя Text="{Binding Converter={StaticResource ConnectionStringTextConverter}}), он не будет срабатывать каждый раз, когда мое значение в выпадающем списке изменяется (обычное значение).

Итак, возможно ли это так? Или я вынужден использовать выбранное событие в выпадающем списке?

Спасибо

PS: На самом деле мне нужно привязать свойство Text текстового поля к моему DataContext (без Path), но мне нужно, чтобы привязка оценивалась каждый раз при изменении свойства объекта. Это возможно?

1 Ответ

0 голосов
/ 25 января 2012

Вы можете использовать служебный класс DataContextProxy следующим образом:

Text={Binding ComboBoxValue, Converter={StaticResource MyTextConverter}, ConverterParameter={StaticResource DataContextProxy}}

, а затем в своем конвертере захватить параметр конвертера и привести его к DataContextProxy и использовать его свойство DataSource.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...