Вот Xaml для моего комбинированного списка:
<ComboBox Grid.Column="4"
Grid.Row="3"
ItemsSource="{Binding Path=Users, Mode=TwoWay, RelativeSource={RelativeSource AncestorType={x:Type cs:AdvancedSettingEditor}}}"
Margin="5"
x:Name="UserPicker"
SelectedValue="{Binding Path=StandAloneUserName, Mode=TwoWay}"
TabIndex="1"
Visibility="{Binding Converter={StaticResource InvertedBoolToVisibility}, Path=LoginRequired}" />
В следующем коде у меня есть простая ObservableCollection строк:
public ObservableCollection<string> Users { get; set; }
Коллекция Users загружена строковыми данными из базы данных.
Существует также DependencyProperty, который связан с DataContext окна, который имеет свойство с именем StandAloneUserName. Объект, сохраненный в этом свойстве, реализует INotifyPropertyChanged.
Когда я запускаю программу, в раскрывающемся списке в поле со списком содержатся все имена из коллекции Users, но поле пустое. Элемент управления не теряет значение поля, поэтому он просто не знает, что отображать.
Как заставить мой ComboBox отображать имя в свойстве StandAloneUserName?
Tony