ComboBox 绑定到 observablecollection 如何添加 1 个额外值

ComboBox binded to observable collection how to add 1 extra value

我有一个组合框通过

绑定到一个可观察的集合
cmbBladesTab1.ItemsSource = easyRunData.olstBlades;

效果很好。 我希望组合框绑定到所有值加一。

例如 easyRunData.olstBlades; 包含 "PL1", "PL2", "PL3", "PL4"

cmbBladesTab1 包含 "ALL BLADES", "PL1", "PL2", "PL3", "PL4"

--添加所有工作都必须从代码隐藏完成

感谢您的帮助。

最简单的方法是在可观察集合中添加一个带有前缀文本/键的额外项目。 这样,因为它在集合中,所以它将在组合框中可见,当用户选择该项目时,您可以评估它是否是添加的项目。

确实给出了一个很好的例子作为这个问题的答案add an item to combobox before bind data from data base

您可以添加 属性,将特定项目添加到列表中。

ObservableCollection<string> myCollection;
ObservableCollection<string> MyCollectionViewProp
{
    get
    {
        var tempCollection = new ObservableCollection<string>(myCollection);
        tempCollection.Add("Extra element");
        return tempCollection;
    }
}

根据集合的大小和访问次数,这可能是编程上最简单的解决方案。如果您需要经常访问它,这个解决方案就会变得更糟,因为它每次都会创建一个新的集合。 在这种情况下,您可能应该收听 CollectionChanged 事件并保留一个单独的冗余列表。