【发布时间】:2012-11-12 14:02:55
【问题描述】:
我正在尝试将预定义的 ComboBoxItem 添加到我的 ComboBox 中,该 ComboBox 已经设置了 ItemsSource 属性。示例:
(Select item)
Item 1
Item 2
Item 3
是否可以在不修改原始项目集合的情况下执行此操作?
【问题讨论】:
标签: c# wpf data-binding combobox
我正在尝试将预定义的 ComboBoxItem 添加到我的 ComboBox 中,该 ComboBox 已经设置了 ItemsSource 属性。示例:
(Select item)
Item 1
Item 2
Item 3
是否可以在不修改原始项目集合的情况下执行此操作?
【问题讨论】:
标签: c# wpf data-binding combobox
这里有一些来自 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?
【讨论】:
如果您想动态更改项目源的内容,请改用 ObservableCollection,这样您就可以访问 Add() 方法。
private ObservableCollection<string> myStrings;
public MyClass()
{
myStrings = new ObservableCollection<string>();
myControl.ItemsSource = myStrings;
}
private void AddNewItem(string item)
{
myStrings.Add(item);
}
【讨论】: