Как использовать Combo Box AddRange в WPF C # - PullRequest
4 голосов
/ 19 марта 2010

У меня есть небольшая проблема, у меня есть массив, и я хочу добавить его в Combobox, поэтому я хочу использовать метод AddRange, но он не доступен в WPF, есть ли способ, которым я могу это сделать в поле со списком?

Спасибо.

Ответы [ 4 ]

5 голосов
/ 22 сентября 2011

Вы не можете, но можете использовать linq для имитации AddRange

Попробуй написать что-нибудь подобное:

    ComboBox    combo;
    String[]    arrOperator = new String[] { "=", "<", "<=", ">", ">=", "<>" };

    combo = new ComboBox();
    arrOperator.ToList().ForEach(item => comboRetVal.Items.Add(item));
5 голосов
/ 19 марта 2010

Вы не можете сделать это в одном утверждении, нет. Вам придется перебирать массив, используя foreach, добавляя каждый элемент отдельно. Очевидно, что вы можете инкапсулировать это во вспомогательный метод или метод расширения, если вы планируете делать это много.

Если вы связываете данные ComboBox.ItemsSource с ObservableCollection (а не манипулируете непосредственно с ComboBox.Items), существует способ, позволяющий избежать получения уведомлений об изменениях коллекции для каждого отдельного Add, описанный в ответах на этот вопрос .

0 голосов
/ 22 марта 2012

Вы можете попробовать

 comboBox1.ItemsSource = array;
0 голосов
/ 19 марта 2010

Попробуйте написать что-нибудь подобное в codebehind:

comboBox1.Items.AddRange (new [] {"Yellow", "DarkBlue", "Red", "Green"});

или

ArrayList array = new ArrayList ();
array.Add ( "1");
array.Add ( "2");
comboBox1.Items.AddRange (массив);

...