Как определить источник события SelectionChangedEvent - PullRequest
0 голосов
/ 08 марта 2009

У меня есть вопрос относительно ComboBox в silverlight, и это выбранный пункт.

Я хотел бы определить, что вызвало SelectionChangedEvent, пользователь выбрал новый элемент в списке или он был установлен программно?

Хотя в идеале я хотел бы решить эту проблему с помощью CommandPattern (по сути, я использую модифицированную RelayCommand (http://joshsmithonwpf.wordpress.com/2008/11/17/emulating-icommandsource-in-silverlight-2/).. Я открыт для других предложений.

Я также поиграл с SelectionChangedEventArgs, у которого есть свойство OriginalSource, которое при первой проверке может показаться полезным, однако оно равно нулю (независимо от способа выбора элемента).

Есть какие-нибудь идеи, кроме установки внутреннего флага? :)

Спасибо

1 Ответ

0 голосов
/ 06 августа 2009

К сожалению, это непросто определить, так как фреймворк работает достаточно усердно, чтобы просто вспомнить любые изменения или пользовательские события в этой ситуации, когда этот выбор изменил событие.

Если вам действительно нужно, вы можете написать простой ComboBoxWrapper, который фактически является флагом, о котором вы говорите, - так что вы можете получить из ComboBox, попробовать переопределить или скрыть установщик CLR для SelectedItem, а затем поддерживать состояние таким образом.

Какой конкретный сценарий используется здесь? Может быть другой способ приблизиться к решению.

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