C# 使用枚举绑定组合框selectedvalue

C# 使用枚举绑定组合框selectedvalue,c#,winforms,C#,Winforms,绑定组合框selectedvalue失败 public void InitializePage() { cbStatus.DataSource = Enum.GetValues(typeof(CourseStudentStatus)); } cbStatus.DataTextField = Enum.GetName(typeof(CourseStudentStatus)); cbStatus.DataValueField = Enum.Get

绑定组合框selectedvalue失败

 public void InitializePage()
 {          
    cbStatus.DataSource = Enum.GetValues(typeof(CourseStudentStatus));
 }
    cbStatus.DataTextField = Enum.GetName(typeof(CourseStudentStatus));

    cbStatus.DataValueField = Enum.GetValues(typeof(CourseStudentStatus));
}
关于我的构造函数

 public EditCourseForm(int status)
 {
     InitializePage();                      
     cbStatus.SelectedText = Enum.GetName(
        typeof(CourseStudentStatus), status).ToString();         
 }
    cbStatus.DataTextField = Enum.GetName(typeof(CourseStudentStatus));

    cbStatus.DataValueField = Enum.GetValues(typeof(CourseStudentStatus));
}
我也试过这个。
cbStatus.SelectedValue=Status

    cbStatus.DataTextField = Enum.GetName(typeof(CourseStudentStatus));

    cbStatus.DataValueField = Enum.GetValues(typeof(CourseStudentStatus));
}
但我无法在组合框上设置SelectedValue

    cbStatus.DataTextField = Enum.GetName(typeof(CourseStudentStatus));

    cbStatus.DataValueField = Enum.GetValues(typeof(CourseStudentStatus));
}
更新 我的枚举

    cbStatus.DataTextField = Enum.GetName(typeof(CourseStudentStatus));

    cbStatus.DataValueField = Enum.GetValues(typeof(CourseStudentStatus));
}
你试过了吗

public EditCourseForm(CourseStudentStatus status)
{
    InitializePage();            

    cbStatus.SelectedItem= status;
}
    cbStatus.DataTextField = Enum.GetName(typeof(CourseStudentStatus));

    cbStatus.DataValueField = Enum.GetValues(typeof(CourseStudentStatus));
}
将InitializePage()函数代码更改为

    cbStatus.DataTextField = Enum.GetName(typeof(CourseStudentStatus));

    cbStatus.DataValueField = Enum.GetValues(typeof(CourseStudentStatus));
}
公共无效初始化页() {

    cbStatus.DataTextField = Enum.GetName(typeof(CourseStudentStatus));

    cbStatus.DataValueField = Enum.GetValues(typeof(CourseStudentStatus));
}
已更新 试试这个

    cbStatus.DataTextField = Enum.GetName(typeof(CourseStudentStatus));

    cbStatus.DataValueField = Enum.GetValues(typeof(CourseStudentStatus));
}
var itemValues = Enum.GetValues(typeof(CourseStudentStatus)).Cast<CourseStudentStatus>().ToDictionary(obj => obj.ToString(), obj => obj.GetHashCode()).ToList();
        comboBox1.DisplayMember = "Key";
        comboBox1.ValueMember = "Value";
        comboBox1.DataSource = itemValues;
var itemValues=Enum.GetValues(typeof(CourseStudentStatus)).Cast().ToDictionary(obj=>obj.ToString(),obj=>obj.GetHashCode()).ToList();
comboBox1.DisplayMember=“Key”;
comboBox1.ValueMember=“Value”;
comboBox1.DataSource=itemValues;
这里itemValues是一种类型的
列表

问题得到解决。
    cbStatus.DataTextField = Enum.GetName(typeof(CourseStudentStatus));

    cbStatus.DataValueField = Enum.GetValues(typeof(CourseStudentStatus));
}
cbStatus.SelectedItem=(CourseStudentStatus)状态;

    cbStatus.DataTextField = Enum.GetName(typeof(CourseStudentStatus));

    cbStatus.DataValueField = Enum.GetValues(typeof(CourseStudentStatus));
}

希望有帮助。

您面临的错误或问题是什么?如果我传入的状态是3,我希望cbStatus选择id=3,但是它会继续选择第一项。它应该能够执行以下操作。
cbStatus.SelectedValue=status
。但是为什么它不..它显示错误“无法在ValueMember为空的ListControl中设置SelectedValue。”也许您可以使用其他内容,例如字符串数组而不是枚举?@giddy:我已使用枚举格式更新了问题。combobox没有DataTextField或DataValueField。
    cbStatus.DataTextField = Enum.GetName(typeof(CourseStudentStatus));

    cbStatus.DataValueField = Enum.GetValues(typeof(CourseStudentStatus));
}