我的目标是要有一个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/