【问题标题】:How to use Combo Box AddRange in WPF C#如何在 WPF C# 中使用组合框 AddRange
【发布时间】:2010-03-19 01:16:58
【问题描述】:

我有一个小问题,我有一个数组,我想在 Combobox 中添加它,所以我想使用 AddRange 方法,但它在 WPF 中不可用,有没有办法可以做到在组合框中?

谢谢。

【问题讨论】:

    标签: c# wpf combobox addrange


    【解决方案1】:

    你不能在一个单一的声明中做到这一点,不。您将不得不使用 foreach 遍历数组,分别添加每个项目。显然,如果您打算经常这样做,您可以将其封装在帮助程序或扩展方法中。

    如果您将 ComboBox.ItemsSource 数据绑定到 ObservableCollection(而不是直接操作 ComboBox.Items),则可以使用一个技巧来避免为每个单独的 Add 获取集合更改通知,如@987654321 的答案中所述@。

    【讨论】:

    • 感谢一些奇怪的原因,它没有在我的脑海中点击,我使用了一个 while 循环,遍历条目然后输出它们。谢谢。
    【解决方案2】:

    你不能,但你可以使用 linq 来模拟一个 AddRange

    试着写这样的东西:

        ComboBox    combo;
        String[]    arrOperator = new String[] { "=", "<", "<=", ">", ">=", "<>" };
    
        combo = new ComboBox();
        arrOperator.ToList().ForEach(item => comboRetVal.Items.Add(item));
    

    【讨论】:

      【解决方案3】:

      你可以试试

       comboBox1.ItemsSource = array;
      

      【讨论】:

      • OP 明确声明“我要添加”并且不设置,否则这将正常工作
      【解决方案4】:

      尝试在代码隐藏中编写类似的内容:

      comboBox1.Items.AddRange(new[] { "Yellow", "DarkBlue", "Red", "Green" });

      ArrayList 数组 = new ArrayList();
      数组.Add("1");
      数组.Add("2");
      comboBox1.Items.AddRange(array);

      【讨论】:

      • 没有 AddRange 这样的方法,所以我不能使用它,但还是谢谢。我已经找到了怎么做。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-12
      • 2013-01-12
      • 2015-08-22
      • 2016-10-29
      相关资源
      最近更新 更多