c# - 具有值和文本的 ComboBoxItem

标签 c# .net xaml windows-store-apps win-universal-app

我的目标是拥有一个 ComboBox,其中每个下拉项目都有一个特定的文本和一个与之关联的特定项目,例如,如果有人点击“blah” - 所选项目将是 3.

据我所知 - 只有一个“内容”同时代表文本和值。那么我如何分别获得两者呢? (在 XAML 或代码中,但没有绑定(bind)。)

最佳答案

强烈建议使用与 XAML 控件的绑定(bind),但是,您可以通过 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 item类没有Value属性,可以使用tag属性来保存对应的值。设置 SelectedValuePath 属性告诉 ComboBox 将哪个属性用作值。

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

相关文章:

.net - 更改背景不透明度而不更改内容不透明度

visual-studio-2010 - 如何在VS2010中为XAML禁用智能感知?

xaml - 如何设置 TextColor Xamarin.Forms TableSection?

c# - 是否建议在 Windows 服务中运行 Visual Studio Tools for Office?

c# - 在构造函数参数中和作为属性具有相似名称的变量的常见做法

c# - 如何修复 “A reference to ' Audio Precision AP2700 3.00对象库'无法添加”

c# - 文件中的文本未附加 - C#

c# - 异步提交或回滚事务范围

c# - 使用 C# 从 WebBrowser 中的 JS 获取值

c# - 如何在xaml中的文本 block 中添加滚动/移动文本