【问题标题】:Display the text selected in a ComboBox in WPF [duplicate]显示在 WPF 中的 ComboBox 中选择的文本 [重复]
【发布时间】:2021-03-15 22:37:29
【问题描述】:

任何帮助都会很有用。我正在尝试在 WPF 中显示在我的 ComboBox 中选择的文本。

这是我的代码:

MessageBox.Show(combobox1.SelectedItem.ToString());

但是这会输出:System.Windows.Controls.ComboBoxItem : Art/Leisure

我希望它输出:Art/Leisure

我不确定我应该做些什么不同的事情!

【问题讨论】:

  • 这是部分选择还是您只想要所选对象的文本表示,因为它显示在组合框中?屏幕截图可能会有所帮助。如果这不是与部分文本相关的请求,那么 dup 是错误的。
  • 如果您不同意重复关闭,请告诉我们,方法是编辑以包含一些 sn-ps 代码,可能还包括一个屏幕截图以进一步识别您要捕获的文本。

标签: c# wpf combobox


【解决方案1】:

所选项目的文本内容

如果您使用的是在 xaml 中定义了 ComboBoxItems 的简单 ComboBox,那么您可能只需要这个:

MessageBox.Show((combobox1.SelectedItem as ComboBoxItem).Content.ToString());

SelectedItem 属性使您可以访问选定的 对象 的实例,具体取决于所使用的呈现模板以及如何或是否已绑定这些项目上面的组合可能不起作用。

如果您不能保证该项目是您期望的 type,我鼓励您在这种情况下使用模式匹配而不是直接强制转换。当您需要处理null(无选择)之类的情况或当 SelectedItem 是数据绑定记录(因此不是ComboBoxItem

时,生成的代码变得更具可扩展性
if (combobox1.SelectedItem is ComboBoxItem cbItem)
    MessageBox.Show($"{cbItem.Content}");
// example of an alternate expected type pattern:
//else if (combobox1.SelectedItem is MyWidget widget)
//    MessageBox.Show(widget.Description);
else
    MessageBox.Show($"{combobox1.SelectedItem}");

可编辑组合框中的选定文本:

如果你特别想访问在 ComboBox 中被部分选中的文本,那么根据这个建议How to get ComboBox.SelectedText in WPF 您应该能够通过访问组合框的控件模板中使用的内部 TextBox 来访问选定的文本:

var textBox = (TextBox)combobox1.Template.FindName("PART_EditableTextBox", combobox1); MessageBox.Show(textBox.SelectedText);


背景 - 文本框选定的文本:

阅读此 WPF 教程:The TextBox Control

txtStatus.Text = "Selection starts at character #" + textBox.SelectionStart + Environment.NewLine;
txtStatus.Text += "Selection is " + textBox.SelectionLength + " character(s) long" + Environment.NewLine;
txtStatus.Text += "Selected text: '" + textBox.SelectedText + "'";

SelectionStart 为我们提供当前光标位置或是否有选择:从哪里开始。 SelectionLength 为我们提供当前选择的长度(如果有)。否则它只会返回 0。 如果有选择,SelectedText 会为我们提供当前选择的字符串。否则返回一个空字符串。

【讨论】:

  • 最后是部分选择还是只选择整个项目?
猜你喜欢
  • 1970-01-01
  • 2014-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-13
  • 1970-01-01
  • 2010-11-11
相关资源
最近更新 更多