我有两个类,它们用列表中的SQL数据库中的数据填充
public class TMain
{
public Int32 idreg { get; set; }
public string regname { get; set; }
public int regtype { get; set; }
public decimal regval { get; set; }
public List<EnumVals> enumvalues { get; set; }
//...other fields...
}
public class EnumVals
{
public Int32 enumValue { get; set; }
public string enumDescription { get; set; }
}
结果,我收到一个AllRecords列表。
此列表我连接到DevExpress.XtraGrid.GridControl。
对于regtype = 0的特定情况,应将某一列显示为LookUpEdit组件(RepositoryItemLookUpEdit)。
问题是我无法通过以下方法在枚举值中找到合适的条目。
以下示例:
public partial class fF_main : DevExpress.XtraBars.Ribbon.RibbonForm
{
private List<TMain> AllRecords = new List<TMain>();
RepositoryItemLookUpEdit riCBX = new RepositoryItemLookUpEdit();
...
}
private void GrdView_CustomRowCellEdit(object sender, DevExpress.XtraGrid.Views.Grid.CustomRowCellEditEventArgs e)
{
if (e.Column.FieldName == "regval")
{
GridView view = sender as GridView;
int regtype = (int)(view.GetRowCellValue(e.RowHandle, view.Columns["regtype"].ToString()));
switch (regtype)
{
case 0:
{
riCBX.DataSource = ???;
riCBX.ValueMember = "enumValue";
riCBX.DisplayMember = "enumDescription";
e.RepositoryItem = riCBX;
break;
}
case 1:
{
///...
break;
}
}
}
}