检索和使用在组合框中选择的值


目标:我有一个GUI和一个包含四个值的组合框。我正在尝试获取选定的数量,并将其打印到具有相关颜色的文件中。

例如:如果";ABC";则在一个文件中;值和指定颜色ABC红";写入行。

我遇到这个问题是因为我不知道如何从组合框中检索值,以便在GetHeader类中使用。

EXTRA:我正在寻找两种解决方案之一,

(1( 我浏览并进行字符串比较,如";retrieveValueFromBox;或

(2( 以某种方式获取所选项目的索引,并使用该索引来编写我需要的行"如果能得到一些关于如何更好地使用C#或学习C#的好建议,那也太好了。

我的代码:

主窗口.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>

主窗口.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.

}

}

我得到了我需要的东西。

我这边的问题。

组合框未正确绑定到事件。修复方法是双击XAML设计窗口中的组合框,它在WindowWindow.XAML.cs的最底部创建了一个绑定到该框的事件。

private void myComboBoxName_SelectionChanged(Object sender, SelectionChangedEventArgs e)
{
comboxValue = myComboBoxName.SelectedIndex.ToString();
}

我注意到,我以前没有注意到,还有另一个函数处理GUI中的信息(文件I/O信息(。所以我把变量";组合框值";进入该函数,并不断传递它,直到它把我一直带到Outputfile.cs.

因为我只使用索引(0,1,2,3,4(。我只是用了一个大小写开关来打印出值和指定的颜色。

相关内容

  • 没有找到相关文章

最新更新