Wpf SelectedItem не будет работать для Combobox в ListView - PullRequest
0 голосов
/ 15 апреля 2010

У меня проблема с Combobox в ListView. У меня есть класс под названием "Субстрат". Этот класс содержит объект класса с именем «SubstrateType». Я хочу показать объекты класса "Субстрат" в Listview. Каждое свойство «Субстрата» представлено в столбцах списка. Для разных «SubstrateType» я хочу использовать комбинированный список.

В XAML я попробовал это так:

<ComboBox Name="CBType"
          ItemsSource="{Binding ElementName=SettingsSubstrate, Path=TypeList}"
          SelectedItem="{Binding Path=Substrate.SubstrateType}"
          DisplayMemberPath="Description"/>

В коде позади я получил две ObservableCollections. Один для всех субстратов и один для всех возможных типов субстратов. В выпадающем списке отображаются все типы субстратов, если вы нажмете на них. Но у выпадающего списка нет выделенного элемента, если вы его не выбрали.

http://i44.tinypic.com/2eakxav.png

Заранее спасибо.

1 Ответ

0 голосов
/ 15 апреля 2010

Я не знаю вашего точного кода, но если в ваших строках ListView отображаются объекты типа Substrate, то ваш Binding Path для SelectedItem должен быть просто SubstrateType, поскольку DataContext для ListViewItem уже установлен в Substrate объект:

SelectedItem="{Binding Path=SubstrateType}"

Кроме того, вам необходимо убедиться, что ваши SubstrateType экземпляры действительно считаются равными. Если экземпляр SubstrateType в вашем объекте Substrate не является точно таким же, как экземпляр из свойства TypeList, он не будет выбран. Это можно исправить, переопределив метод Equals(...) и определив пользовательское сравнение на равенство.

Если это не работает, пожалуйста, предоставьте больше кода, например, окружающий XAML и код Substrate и выделенный код / ​​ViewModel / что угодно.

...