Как динамически добавлять элементы ComboBox в wpf - PullRequest
5 голосов
/ 28 декабря 2011

Я новичок в WPF,

Я динамически добавляю элементы в комбинированный список, как показано ниже

   objComboBox.Items.Add("<--Select-->");

Теперь мне нужно установить значение и индекс для конкретного элемента.В asp.net я делал

DropDownList1.Items.FindByText("<--Select-->").Value ="-1" 

Я не нашел подходящий метод в wpf.как я могу это сделать?

Ответы [ 4 ]

16 голосов
/ 28 декабря 2011

XAML:

<ComboBox ItemsSource="{Binding cbItems}" SelectedItem="{Binding SelectedcbItem}"/>

Код-за:

public ObservableCollection<ComboBoxItem> cbItems { get; set; }
public ComboBoxItem SelectedcbItem { get; set; }

public MainWindow()
{
    InitializeComponent();
    DataContext = this;

    cbItems = new ObservableCollection<ComboBoxItem>();
    var cbItem = new ComboBoxItem { Content = "<--Select-->" };
    SelectedcbItem = cbItem;
    cbItems.Add(cbItem);
    cbItems.Add(new ComboBoxItem { Content = "Option 1" });
    cbItems.Add(new ComboBoxItem { Content = "Option 2"});
}
4 голосов
/ 28 декабря 2011

Всегда старайтесь , чтобы избежать прямого доступа к интерфейсу. Используйте binding для привязки данных к вашему контролю и add, search, remove независимо ... только для данных . Для изменения пользовательского интерфейса сама позаботится о привязке WPF.

Пример: http://www.codeproject.com/KB/WPF/DataBindingWithComboBoxes.aspx

1 голос
/ 28 декабря 2011
  combo.SelectedIndex = combo.Items.IndexOf("<--Select-->");

Но лучше использовать Binding, как упоминалось в snurre

0 голосов
/ 10 августа 2017

Если это первое в списке, вы должны использовать: objComboBox.SelectedIndex = 0; или же DropDownList1.SelectedIndex = 0;

Если это не первый, используйте: objComboBox.SelectedItem = "<- Select ->"; или же DropDownList1.SelectedItem = "<- Select ->";

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...