向带有ItemsSource的ComboBox中添加预定义项

4
我正在尝试将一个预定义的ComboBoxItem添加到已经设置了ItemsSource属性的ComboBox中。例如:
(Select item)
Item 1
Item 2
Item 3

这可以在不修改原始项目集合的情况下实现吗?
2个回答

5
以下是来自 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- 如何将ComboBox转换为使用已绑定的CompositeCollection?

2
如果您想要动态更改项目源的内容,使用ObservableCollection代替,这样你就可以使用Add()方法。
private ObservableCollection<string> myStrings;

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接