使用ItemsSource将预定义项添加到ComboBox

时间:2012-11-24 14:19:22

标签: c# wpf data-binding combobox

我正在尝试将预定义的ComboBoxItem添加到我的ComboBox中,该ComboBox已经设置了ItemsSource属性。例如:

(Select item)
Item 1
Item 2
Item 3

可以在不修改原始项目集合的情况下执行此操作吗?

2 个答案:

答案 0 :(得分:2)

以下是来自MSDN的一些示例代码,其中显示了CompositeCollection的用法:

<ComboBox>
    <ComboBox.ItemsSource>
        <CompositeCollection>
            <ListBoxItem>Please Select</ListBoxItem>
            <CollectionContainer Collection="{Binding Source={StaticResource YOURDATASOURCE}}" />
        </CompositeCollection>
    </ComboBox.ItemsSource>
</ComboBox>

以下是一些参考资料,向您展示CompositeCollection的用法:

1- http://msdn.microsoft.com/en-us/library/system.windows.data.compositecollection.aspx

2- http://robertbouillon.com/2010/04/17/adding-items-to-a-data-bound-wpf-combobox/

3- How do I convert a ComboBox to use a bound CompositeCollection?

答案 1 :(得分:2)

如果要动态更改items source的内容,请改用ObservableCollection,这样您就可以访问Add()方法。

private ObservableCollection<string> myStrings;

public MyClass()
{
    myStrings = new ObservableCollection<string>();
    myControl.ItemsSource = myStrings;
}

private void AddNewItem(string item)
{
    myStrings.Add(item);
}