2013-07-16 3 views
6

Это исходная ситуация:WPF ComboBox: Неправильно Пункт отображается

XAML:

<ComboBox Grid.Row="0" 
      Grid.Column="1" 
      Margin="0,3" 
      HorizontalAlignment="Stretch" 
      DisplayMemberPath="DisplayText" 
      ItemsSource="{Binding ObjectSource}" /> 

ViewModel:

public Collection<MyObjects> ObjectSource 
{ 
    get 
    { 
     return this.objectSource; 
    } 

    set 
    { 
     this.SetProperty(ref this.objectSource, value); 
    } 
} 

Мои объекты содержит имя (строка), действует с (dateTime) и displayText (только строка), которые объединяют имя и действительный для отображения.

В этой простой ситуации я могу открыть combobox и просмотреть все записи, после выбора одного из них также отобразится правильный отображаемый текст внутри combobox. Теперь я снова открываю область выпадающего меню и выбираю другую запись. В результате переключается выбранный элемент (так как вы можете увидеть элемент с высоким рейтингом при открытии выпадающего списка). Но отображаемый элемент внутри combobox не изменился, все еще есть DisplayText первого выбора.

Screenshot of the result situation

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

Редактировать: Спасибо всем за помощь. Проблема была ошибочной переоценкой Equals.

+0

Вы переопределили равные? – blindmeis

+0

Я проверил вашу проблему, но в моем случае все работает нормально. Может быть, проблема в том, что каким-то образом ваша сборка становится обновленной, или это может быть ваша коллекция. Просто проверьте ее, используя точки останова. – loop

+0

абсолютно каждая вещь отлично работает в моей системе. – Betty

ответ

1

только для полноты :)

вы должны проверить Equals() переопределение и убедитесь, что это еще не глючит. У меня была такая же проблема со списком в эти дни.

+0

btw не стесняйтесь публиковать оба метода (хорошие и плохие) в моем сообщении. – blindmeis

Смежные вопросы