【问题标题】:Adding predefined item to a ComboBox with ItemsSource使用 ItemsSource 将预定义项目添加到 ComboBox
【发布时间】:2012-11-12 14:02:55
【问题描述】:

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

(Select item)
Item 1
Item 2
Item 3

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

【问题讨论】:

    标签: c# wpf data-binding combobox


    【解决方案1】:

    这里有一些来自 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?

    【讨论】:

      【解决方案2】:

      如果您想动态更改项目源的内容,请改用 ObservableCollection,这样您就可以访问 Add() 方法。

      private ObservableCollection<string> myStrings;
      
      public MyClass()
      {
          myStrings = new ObservableCollection<string>();
          myControl.ItemsSource = myStrings;
      }
      
      private void AddNewItem(string item)
      {
          myStrings.Add(item);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-02
        • 2017-01-05
        • 2015-10-09
        • 1970-01-01
        • 2012-09-04
        相关资源
        最近更新 更多