我创建了一个ComboBox,用户需要选择一种语言。
private void ComboBox1_SelectedIndex(object sender, EventArgs e)
{
if (ComboBox1.SelectedIndex.ToString == "English")
{
this.Frame.Navigate(typeof(MainPage));
}
我不确定我写错了什么。我应该将英语选项转换为字符串还是我可以选择作为项目?
答案 0 :(得分:3)
selecteditem是选择的值
selectedindex是选择的索引
你还要检查你的组合框选择项目的天气,否则会抛出异常
private void ComboBox1_SelectedIndex(object sender, EventArgs e)
{
if (ComboBox1.SelectedIndex!=-1 && ComboBox1.SelectedItem.ToString() == "English")
{
this.Frame.Navigate(typeof(MainPage));
}
答案 1 :(得分:1)
你需要ToString上的括号 - > ToString()甚至可以编译。 SelectedIndex也只会给你一个索引号而不是值。应该使用ComboBox1.SelectedItem.ToString()
private void ComboBox1_SelectedIndex(object sender, EventArgs e)
{
if (ComboBox1.SelectedIndex.ToString() == "English")
{
this.Frame.Navigate(typeof(MainPage));
}
尝试更接近这一点:
private void ComboBox1_SelectedIndex(object sender, EventArgs e)
{
var comboBox = sender as ComboBox;
if(comboBox != null)
{
if (comboBox.SelectedIndex != -1 && comboBox.SelectedItem.ToString() == "English")
{
this.Frame.Navigate(typeof(MainPage));
}
}
答案 2 :(得分:0)
所选索引应为数值
所以请将您的代码更改为以下
private void ComboBox1_SelectedIndex(object sender, EventArgs e)
{
bool result = comboBox1.SelectedValue.ToString()=="English"; // case-1
// Or use
result = comboBox1.SelectedText.ToString() == = "English"; // Case -2
//or use
result = comboBox1.SelectedText == "English"; //case-3
if(result){
// Do the resut
}
注意:对于工作案例1和案例2,您必须使用数据源绑定组合框