WPF组合框如何使用列表填充

时间:2019-03-25 00:36:43

标签: c# wpf combobox

在我自学编程的同时,我正在为自己构建预算跟踪应用程序,我想花些钱花一些钱。我有一个render(){ const {isLoaded} = this.state; if(!isLoaded) { return <div>Loading...</div> } return( <div> <select onChange={this.handleChange}> <option value="America/Chicago">Chicago</option> <option value="America/Sao_Paulo">São Paulo</option> </select> </div> ) } ,我想用包含类别的List的内容填充。我将如何去做?

2 个答案:

答案 0 :(得分:1)

您只需将一组项目分配给ItemsSource属性:

comboBox.ItemsSource = new List<string> { "Item 1", "Item 2", "Item 3" };

请参阅MS Docs中ItemsControl.ItemsSource Property的备注:

  

内容模型:此属性可用于将项目添加到ItemsControl。

     

常见方案是使用诸如ListBox,ListView或TreeView之类的ItemsControl来显示数据集合,或将ItemsControl绑定到集合对象。要将ItemsControl绑定到集合对象,请使用ItemsSource属性。请注意,默认情况下,ItemsSource属性支持OneWay绑定。

     

设置ItemsSource属性后,Items集合将变为只读且大小固定。


据我所知,Items属性主要作为默认集合存在,在XAML中直接分配项目时会在其中添加项目。 ItemsControls的属性为

[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>

答案 1 :(得分:0)

要用列表的内容填充组合框,需要将列表的每个项目添加到组合框的items中。

一个简单的示例,假设您定义了comboBox1

        List<string> myList = new List<string> { "item1", "item2", "item3" };
        myList.ForEach(x => { comboBox1.Items.Add(x); });