代码之家  ›  专栏  ›  技术社区  ›  DeveloperDan Asaf

在只包含文本项的组合框中获取所选文本的最简单方法是什么?

  •  27
  • DeveloperDan Asaf  · 技术社区  · 14 年前

    我的WPF组合框只包含文本条目。用户将选择一个。 获取所选ComboBoxItem的文本的最简单方法是什么? 请用C#和Visual Basic两种语言回答。这是我的组合框:

    <ComboBox Name="cboPickOne">
        <ComboBoxItem>This</ComboBoxItem>
        <ComboBoxItem>should be</ComboBoxItem>
        <ComboBoxItem>easier!</ComboBoxItem>
    </ComboBox>
    

    顺便说一下,我知道答案,但不容易找到。我想我应该发布这个问题来帮助别人。我学到了一个更好的答案。通过添加SelectedValuePath=“Content”作为组合框属性,我不再需要难看的铸造代码。见下面安迪的答案。

    8 回复  |  直到 5 年前
        1
  •  62
  •   SendETHToThisAddress    4 年前

    SelectedValuePath="Content"

    <ComboBox 
      Name="cboPickOne"
      SelectedValuePath="Content"
      >
      <ComboBoxItem>This</ComboBoxItem>
      <ComboBoxItem>should be</ComboBoxItem>
      <ComboBoxItem>easier!</ComboBoxItem>
    </ComboBox>
    

    .SelectedValue.ToString()

       stringValue = cboPickOne.SelectedValue.ToString()
    
        2
  •  11
  •   DeveloperDan Asaf    14 年前

    为了澄清海因茨和吉姆·布里松的答案,这里的代码是 Visual Basic语言

    Dim text As String = DirectCast(cboPickOne.SelectedItem, ComboBoxItem).Content.ToString()
    

    C级# :

    string text = ((ComboBoxItem)cboPickOne.SelectedItem).Content.ToString();
    

        3
  •  6
  •   Konstantin Nikolov    8 年前

    string SelectedItem = MyComboBox.Text;
    
        4
  •  3
  •   Jim Brissom    14 年前

    如果您已经知道ComboBoxItem的内容只会是字符串,只需以字符串形式访问内容:

    string text = ((ComboBoxItem)cboPickOne.SelectedItem).Content.ToString();
    
        5
  •  3
  •   Tarvo Mäesepp    8 年前

    如果在组合框中添加项

    youComboBox.Items.Add("Data"); 
    

    然后用这个:

    youComboBox.SelectedItem; 
    

    DataRowView vrow = (DataRowView)youComboBox.SelectedItem;
    DataRow row = vrow.Row;
    MessageBox.Show(row[1].ToString());
    
        6
  •  2
  •   mnj    8 年前

    使用 cboPickOne.Text

        7
  •  0
  •   Heinzi    14 年前
    var s = (string)((ComboBoxItem)cboPickOne.SelectedItem).Content;
    
    Dim s = DirectCast(DirectCast(cboPickOne.SelectedItem, ComboBoxItem).Content, String)
    

    自从我们 知道 ToString() 方法调用。

        8
  •  -1
  •   Simon MᶜKenzie Kristijan Tomić    12 年前

    DataRowView.Row.Item[Index] ItemArray[Index] 属性以获取 SelectedItem ,其中Index是 DataTable 用作 itemSource

    VB语言:

    Dim sItem As String=DirectCast(cboPickOne.SelectedItem, DataRowView).Row.Item(1).ToString()
    

    String sItem=((DataRowView)cboPickOne.SelectedItem).Row.Item[1].ToString();
    

    VB语言:

    Dim sValue As String=cboPickOne.SelectedValue.ToString()
    

    C级#

    String sValue=cboPickOne.SelectedValue.ToString();
    
    推荐文章