我的目标是要有一个ComboBox,其中每个下拉菜单项都具有特定的文本和与之关联的特定项,例如,如果单击“ blah”,则所选项目将为3。

据我所知-只有一个“内容”既代表文本又代表值。那么如何分别获得两者呢? (以XAML或代码形式,但没有绑定。)

最佳答案

强烈建议将绑定与XAML控件一起使用,但是,您可以通过Items属性在XAML中定义ComboBox项:

  <ComboBox x:Name="comboBox1"
            SelectionChanged="ComboBox_SelectionChanged"
            SelectedValuePath="Tag">
     <ComboBox.Items>
        <ComboBoxItem Tag="1">Item 1</ComboBoxItem>
        <ComboBoxItem Tag="2">Item 2</ComboBoxItem>
        <ComboBoxItem Tag="3">Item 3</ComboBoxItem>
     </ComboBox.Items>
  </ComboBox>


并获取代码中的选定项目:

 private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) {
     Debug.WriteLine(comboBox1.SelectedValue);
  }


由于ComboBox项类没有Value属性,因此可以使用tag属性来保存相应的值。设置SelectedValuePath属性会告诉ComboBox将哪个属性用作Value。

关于c# - 具有值和文本的ComboBoxItem,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33132756/

10-13 08:27