Hola, ¿puedo saber cómo obtener el valor enumerado a continuación para vincularlo al cuadro combinado? Escribí el siguiente código que funciona bien pero me pregunto si es la mejor manera.Agregar enum al cuadro combinado
public enum CourseStudentStatus
{
Active = 1,
Completed = 2,
TempStopped = 3,
Stopped = 4,
}
//Bind Course Status
Dictionary<string, int> list = new Dictionary<string, int>();
foreach (int enumValue in Enum.GetValues(typeof(CourseStudentStatus)))
list.Add(Enum.GetName(typeof(CourseStudentStatus), enumValue), enumValue);
var column = ((DataGridViewComboBoxColumn)dgv.Columns["studentCourseStatus"]);
column.DataPropertyName = "StudentStatus";
column.DisplayMember = "Key";
column.ValueMember = "Value";
column.DataSource= list.ToList();
----------------- ACTUALIZACIÓN -------------------
Hola i he cambiado mi código a esto de acuerdo con Sanjeevakumar Hiremat y funciona perfectamente.
cbStatus.DataSource = Enum.GetValues(typeof(CourseStudentStatus));
Sin embargo, cuando quiero un get() y desea enlazar el valor de nuevo a la cbStatus, echó error { "Referencia a objeto no establecida como instancia de un objeto."}
cbStatus.SelectedValue = Course.Status;
.
El cbStatus.Datasource no está vacío y no tiene valor después ligado a cbStatus.DataSource = Enum.GetValues(typeof(CourseStudentStatus));
consejo por favor.
estoy pensando ¿es posible reducir esta basura de código? o podría ser convertido a una función? – VeecoTech
podría convertir su conversión a un diccionario en un método de extensión para System.Enum, lo que haría que su código sea más legible y general, pero no creo que haya una forma de vincularse a una enumeración sin hacer todos los GetValues y GetName cosas. –