【问题标题】:Find string in combobox and show it在组合框中查找字符串并显示它
【发布时间】:2012-03-11 00:16:25
【问题描述】:

我以为这很容易,但现在我不知道该怎么做。 在 WPF 应用程序中,我通过单击上下文菜单项从一个窗口转到另一个窗口。我的新窗口构造函数如下所示:

    public Bearbeitung(int loginid, String art)

在 Window 上,有一个包含列表的复选框。我想要的是,我的复选框中的默认选定项目是art。 好的,我检查了字符串是否在列表中,但现在我不知道如何将其设置为组合框中的选定项。

我该如何管理?

编辑:我已经试过了

combobox.SelectedItem = art;

...这行不通!

EDIT2:

代码如下:

      List<String> feld = new List<string>();
      feld = agrep.GetFelder(loginid);
      foreach (String s in feld)
      {
          cbFeld.Items.Add(s);
      }
      if (cbFeld.Items.Contains(art))
       {
           MessageBox.Show("It contains it");
           cbFeld.SelectedItem = art;
       }

消息框未显示!

【问题讨论】:

  • 艺术是您组合框中的现有项目之一?
  • 好吧,如果没有显示消息框,这意味着 cbFeld.Items.Contains 返回 false 并且 cbFeld.SelectedItem = art 甚至永远不会执行!您确定组合框包含完全来自art的文本吗?

标签: c# wpf list combobox selecteditem


【解决方案1】:

如果列表项只是字符串,你可以简单地做

myComboBox.SelectedItem = art;

【讨论】:

  • @user896692:您收到错误消息吗?您的 ComboBox 项目真的只是字符串吗?如果您显示用于数据绑定组合框的代码,也许会有所帮助。
  • @user896692 你的组合框中有艺术作品吗?
  • @user896692:这太令人惊讶了。你能试试下面的吗? myComboBox.SelectedItem = myComboBox.Items.Cast&lt;string&gt;.Where(x =&gt; x == art).Single(); 可能是因为 art 是一个不同的字符串对象(包含相同的值但具有不同的对象标识)...
【解决方案2】:

如果您的ComboBox 仅包含字符串,您应该可以只设置SelectedItem

cb.SelectedItem = art;

如果它不仅包含字符串,您可能想要更改它,例如

cb.ItemsSource = new string[] { "Item 1", "Item 2" };

如果您有复杂的对象,您需要设置 SelectedValueSelectedValuePath

【讨论】:

    【解决方案3】:

    试试

    cbFeld.Text = art;
    

    这应该可以。

    【讨论】:

      【解决方案4】:

      好的,我只是解决它。问题是,当我将字符串提供给另一个窗口时,添加了一个空白。谢谢大家!

      【讨论】:

        猜你喜欢
        • 2021-05-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多