idShura
@idShura

Как выбрать элемент в comboBox по имени?

Подскажите как в WPF С# выбрать элемент в comboBox по имени?

Сделать как на WinForms в WPF не получается:
comboBox2.SelectedIndex = comboBox2.Items.IndexOf("Вася");


Значения в comboBox добавляю так:
comboBox2.ItemsSource = r2.ResultData.DefaultView;
comboBox2.SelectedValuePath = r2.ResultData.DefaultView.Table.Columns["id"].ToString(); 
comboBox2.DisplayMemberPath = r2.ResultData.DefaultView.Table.Columns["name"].ToString();
  • Вопрос задан
  • 2500 просмотров
Решения вопроса 1
@Sumor
Items используется для "поэлементной" работы, а ItemsSource для подключения коллекций. Нельзя работать с ними одновременно - либо Items, либо ItemsSource.
Поэтому ваш код должен преобразиться примерно в такой:
comboBox2.SelectedIndex = (comboBox2.ItemsSource as System.Data.DataView).IndexOf("Вася");

Но это не будет работать, так как в качестве элементов в ComboBox располагаются элементы из таблицы целиком, а не только имена. Поэтому лучше и удобнее пользоваться свойством SelectedItem, примерно так:
comboBox2.SelectedItem = (comboBox2.ItemsSource as System.Data.DataView).Find("Вася");

А ещё лучше через Binding связать свойство comboBox2.SelectedItem с каким-либо свойством вашей модели и использовать её.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@d-stream
Готовые решения - не подаю, но...
Не лучше ли использовать binding ?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы