Я был смущен в то время как установка SelectedItem программно в wpf приложениях с Сетевой Платформой 3,5 установленные sp1. Я тщательно считал приблизительно сотню сообщений \topics, но все еще перепутал ((Мой xaml:
<ComboBox name="cbTheme">
<ComboBoxItem>Sunrise theme</ComboBoxItem>
<ComboBoxItem>Sunset theme</ComboBoxItem>
</ComboBox>
Если я добавляю IsSelected = свойство "True" в одном из объектов - это - наборы dosn't этот выбранный объект. ПОЧЕМУ? И я был попыткой, отличающейся в коде, и все еще не могу установить выбранный пункт:
cbTheme.SelectedItem=cbTheme.Items.GetItemAt(1); //dosn't work
cbTheme.Text = "Sunrise theme"; //dosn't work
cbTheme.Text = cbTheme.Items.GetItemAt(1).ToString();//dosn't work
cbTheme.SelectedValue = ...//dosn't work
cbTheme.SelectedValuePath = .. //dosn't work
//and even this dosn't work:
ComboBoxItem selcbi = (ComboBoxItem)cbTheme.Items.GetItemAt(1);//or selcbi = new ComboBoxItem
cbTheme.SelectedItem = selcbi;
SelectedItem не является свойством только для чтения, итак, почему это работа wan't? Я думаю, что это, должны быть проблемы Microsoft, не мой. Или я пропустил что-то??? У меня есть попытка, играющая с ListBox, и все хорошо работают с тем же кодом, я могу установить выборы, получить выборы и так далее.... Таким образом, что я могу сделать с ComboBox? Возможно, некоторые приемы???
Привязаны ли данные ComboBox?
Если да, вам, вероятно, лучше сделать это через привязку, а не код ....
См. Этот вопрос ... WPF ListView программно выбрать элемент
Возможно, создать новый SelectableObject {Text = "Abc Theme", IsCurrentlySelected = True} Привязать коллекцию SelectableObjects в ComboBox.
По сути, установка свойства IsCurrentlySelected в модели и обновление пользовательского интерфейса из модели.