В выпадающем списке Silverlight не отображаются связанные элементы - PullRequest
1 голос
/ 17 февраля 2011

У меня есть ComboBox, ItemSource которого связан со списком строк (в идеале я бы использовал Enum), это делается с использованием шаблона MVVM.

Теперь я хочу связать объект с ComboBox, он называется SelectedUser, и я хочу связать его свойство: UserType, которое является строкой.

Итак, я получил это:

<ComboBox ItemsSource="{Binding Path=Usertypes}"  SelectedValue="{Binding Mode=TwoWay, Path=SelectedUser.UserType}" />

Он работает и меняет значение выбранного пользователя, если я с ним играю, но проблема в том, что он ничего не отображает в ComboBox, если я не выбрал пользователя, а затем не изменил ComboBox выбор, то это работает, но только для этого пользователя.

Я пытался поиграть с DisplayMemberPath, SelectedValuePath и SelectedItem, когда я добавил их, ComboBox ничего не показывал (все еще были варианты для выбора, но они были невидимы или что-то в этом роде).

Так что мне делать? Это ошибка? Я должен упомянуть, что у меня есть еще один ComboBox со списком целых чисел, и он отлично работает.

Обновление:

Мне сообщили, что я получаю эту проблему, потому что строка, которую я сравниваю со строкой в ​​comboBox, на самом деле не совпадает.

Моя строка поступает из Entity Framework через Ria Services. (User.UserType) И когда он сравнивает его со списком строк в ComboBox ItemSource, они не равны по какой-то странной причине.

И я также слышал, что мне, возможно, придется переопределить метод Equal для этой проверки. но я не уверен, где и как это сделать.

1 Ответ

0 голосов
/ 17 февраля 2011

Уведомляется ли представление, если SelectedUser изменяется?Я мог представить, что это может быть проблемой;если такого уведомления нет, ComboBox не будет перезагружать SelectedValue, если выбран другой пользователь, он обновит привязку, только если вы внесете изменения самостоятельно.

Если это не так, вам также потребуетсяучитывать, что никакое выбранное значение не будет отображаться, если текущее значение точно не соответствует одному из значений в списке источников.

...