Добавление Silverlight Toolkit AutoCompleteBox к выбранному элементу

Я работаю с полем автозаполнения из Silverlight Tookit (декабрьский выпуск). По мере ввода пользователем я использую веб-сервис для возврата ItemsSource, содержащего поиск только того слова, которое пользователь в данный момент вводит в AutoCompleteBox (в отличие от всей фразы, которая является поведением по умолчанию). Теперь я хотел бы сделать, если пользователь выберет вариант из раскрывающегося списка, я бы хотел ДОБАВИТЬ эту опцию в AutoComplteBox, а НЕ заменять ее, как это происходит сейчас.

Например, если последний элемент должен читаться как «Джон Смит». В настоящее время, когда пользователь вводит J-O-H-N, появляется список, содержащий Джона, и они могут выбрать Джона по мере необходимости. Когда они перейдут к вводу S-M-I-T-H, я обработал событие заполнения, чтобы передать только последнее слово в свойстве .Text веб-сервису, и они получат список, включающий smith. Все идет нормально. Однако, когда в раскрывающемся списке выбирается «Смит», содержимое «Джон» ЗАМЕНЯЕТСЯ содержимым «Смит», оставляя вам просто «Смит», а не «Джон Смит», как нам хотелось бы.

Я попытался справиться с этим, написав собственные обработчики для событий DropDownClosing и / или SelectionChanged. Ни одно из этих событий не является подходящим событием для обработки.

Может ли кто-нибудь указать мне, куда я могу пойти, чтобы справиться с таким поведением?

Спасибо


person Steve Brouillard    schedule 17.02.2009    source источник


Ответы (1)


Видя, как вы уже подключаетесь к событию включения и, предположительно, запускаете запрос на сервер для данных, почему бы просто не добавить «Джон» ко всем элементам в источнике элементов, прежде чем вернуть его? Тогда, когда вы сопоставите, он уже будет там.

person mattmanser    schedule 18.02.2009
comment
Я подумал о том, чтобы сохранить предварительно ожидаемые данные в свойстве в моем Model-View, что выполнит то, что вы говорите, но, похоже, это медленный способ выполнить задачу. Я могу сделать это как краткосрочное решение, но надеюсь, что оно не должно быть окончательным. Просто мне это не кажется очень чистым. - person Steve Brouillard; 18.02.2009
comment
Итак, в конце концов, это то, что я решил сделать. Единственный другой вариант на данный момент - написать свою собственную версию адаптера выбора, чтобы изменить это поведение. Может быть интересно будет позже, но без крайнего срока. - person Steve Brouillard; 18.02.2009