其他List <>类中的类的c#List <>显示为RepositoryItemLookUpEdit

时间:2019-09-23 20:08:34

标签: c# list datagridview foreign-keys devexpress

我有两个类,它们用列表中的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;
                    }
            }
        }
    } 

0 个答案:

没有答案