#c# #wpf #combobox
#c# #wpf #выпадающий список
Вопрос:
Я создаю приложение для отслеживания бюджета для себя, поскольку я учусь программировать, и я хочу иметь категории вещей, на которые я трачу свои деньги. У меня есть combobox
который я хотел бы заполнить содержимым списка, содержащего категории. Как бы я это сделал?
Ответ №1:
Вы бы просто назначили коллекцию элементов ItemsSource
свойству:
comboBox.ItemsSource = new List<string> { "Item 1", "Item 2", "Item 3" };
Смотрите примечания к ItemsControl.Свойство ItemsSource в MS Docs:
Модель содержимого: Это свойство может использоваться для добавления элементов в ItemsControl.
Распространенным сценарием является использование элемента управления ItemsControl, такого как ListBox, ListView или TreeView, для отображения коллекции данных или для привязки элемента управления ItemsControl к объекту коллекции. Чтобы привязать ItemsControl к объекту коллекции, используйте свойство ItemsSource. Обратите внимание, что свойство ItemsSource по умолчанию поддерживает одностороннюю привязку.
Когда свойство ItemsSource установлено, коллекция элементов становится доступной только для чтения и фиксированного размера.
Насколько я понимаю, Items
свойство в основном существует как коллекция по умолчанию, куда элементы добавляются, когда вы назначаете их непосредственно в XAML. Элементы управления приписываются
[System.Windows.Markup.ContentProperty("Items")]
для поддержки XAML, подобного этому:
<ComboBox>
<sys:String>Item 1</sys:String>
<sys:String>Item 2</sys:String>
<sys:String>Item 3</sys:String>
</ComboBox>
Ответ №2:
Для заполнения выпадающего списка содержимым списка необходимо добавить каждый элемент этого списка в items
выпадающего списка.
Минимальный пример, предполагающий, что у вас есть comboBox1
определенный:
List<string> myList = new List<string> { "item1", "item2", "item3" };
myList.ForEach(x => { comboBox1.Items.Add(x); });