检索和使用在 ComboBox 中选择的值
Posted
技术标签:
【中文标题】检索和使用在 ComboBox 中选择的值【英文标题】:Retrieving and Using a Value selected in a ComboBox 【发布时间】:2021-03-03 03:33:08 【问题描述】:目标:我有一个 GUI 和一个包含四个值的组合框。 我正在尝试获取所选数量并将其打印到具有相关颜色的文件中。
例如:如果选择了“ABC”,那么在文件中,“Value and Assigned Color ABC red”将写入该行。
我遇到了这个问题,因为我不知道如何从该组合框中检索值以在我的 GetHeader 类中使用。
额外:我正在寻找两种解决方案之一,
(1) 我按照“retrieveValueFromBox”或
(2) 以某种方式获取所选项目的索引并使用该索引来编写我需要的行。” 如果能获得一些关于如何更好地使用或学习 C# 的体面建议也很棒。
我的代码:
MainWindow.xaml
<ComboBox x:Name="myBox" ...alignment information...>
<ComboBoxItem Content="abc" ...alignment information...>
<ComboBoxItem Content="def" ...alignment information...>
<ComboBoxItem Content="ghi" ...alignment information...>
<ComboBoxItem Content="jkl" ...alignment information...>
</ComboBox>
MainWindow.xaml.cs
private void selectedItemFromBox(object sender, EventArgs e)
ComboBox selectedValue = (ComboBox)sender;
string selectedText = selectedValue.Text;
OutputFile output = new OutputFile();
output.retreiveValueFromBox(selectedText);
输出文件.cs
namespace myApplication
class OutputFile
// Stuff
//public bool Write( ...args... ) makes the call to this function. See below
private void GetHeader(StreamWriter w, string year, string evt)
//How do I get the value from the combobox here so I can use it.
// If it is better practice to grab the value in public bool Write() then see below
// Yes I understand that GetHEader's args will need to be changed
w.WriteLine("Line 1");
w.WriteLine("Line 2");
w.WriteLine("Value and Assigned Color " + retreiveValueFromBox(comboBoxItem));
w.WriteLine("Line N");
private string retreiveValueFromBox(string boxText)
string value_Color = "";
//If I can just get the index of the string, I can just do a case/switch.
//And dump the String.Euals()
if (String.Equals(boxText, "abc"))
value_Color = boxText + " red");
else if bString.Equals(boxText, "def")
value_Color = boxText + " blue");
else if String.Equals(boxText, "ghi")
value_Color = boxText + " green");
else if String.Equals(boxText, "jkl")
value_Color = boxText + " orange");
else
value_Color = "UNKNOWN yellow");
return value_Color;
public bool Write( ...args... )
//Stuff
for (; idx < eventNum; )
// Or Get the ComboBox Value here
GetHeader(sWrite, year(), evt); //And pass value in here.
【问题讨论】:
SelectedItem 是一个 ComboBoxItem。 ComboBoxItem.Content 应该返回值。 您能再详细说明一下吗? 几乎明白了。 "System.Windows.Controls.ComboBox.Item:" 使用该值打印。事件处理程序仅包含“comboBoxValue = myComboBoxName.SelectedItem.ToString();”行。我假设我使用了不正确的“Selected___”东西。一旦它是 100% 将发布解决方案。 【参考方案1】:我得到了我需要的东西。
我的问题。
组合框未正确绑定到事件。修复方法是双击 XAML 设计窗口中的组合框,该窗口在 WindowWindow.xaml.cs 的最底部创建了一个与该框相关联的事件。
private void myComboBoxName_SelectionChanged(Object sender, SelectionChangedEventArgs e)
comboxValue = myComboBoxName.SelectedIndex.ToString();
我注意到,我以前没有注意到,有另一个函数处理来自 GUI 的信息(文件 I/O 信息)。所以我将变量“comboboxValue”放入该函数中,并一直传递它,直到它把我一直带入Outputfile.cs。
因为我只使用索引 (0, 1, 2, 3, 4)。我只是使用 Case/Switch 打印出值和分配的颜色。
【讨论】:
似乎问题已解决。也许您可以将其标记为答案。以上是关于检索和使用在 ComboBox 中选择的值的主要内容,如果未能解决你的问题,请参考以下文章
jquery easyui combobox 添加添加选择项
Python tkinter - 从 ttk.combobox 中检索 SQLite ID。
jQuery EasyUI 1.4.4 Combobox无法检索中文输入的问题