为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 DevExpress Master Detail DataGrid 中隐藏一些卡片?

如何在 DevExpress Master Detail DataGrid 中隐藏一些卡片?

C#
蝴蝶不菲 2021-10-09 16:32:27
我想在填充了 RowValues 列表的 DataGrid 中显示一些(但不是全部)数据:public class RowValue {    public int id;    public string name;    public List<A> list1;    public List<B> list2;}public class A{    public int id;    public string val1;    public string val2;    ...}public class B{    public int id;    public string val1;    public string val2;    ...}当我在 Master-Detail DataGrid 中展开一行时,我看到两张卡片显示每个列表(list1 和 list2)的行。我想在我的 DataGrid 中隐藏 list1。目前我可以隐藏 list1 中的所有列,但带有标题的空卡片仍在污染 GridView。void gridView_MasterRowExpand(object sender, CustomMasterRowEventArgs e){   var masterView = sender as GridView;   GridView detailView = masterView?.GetDetailView(e.RowHandle, e.RelationIndex) as GridView;   if(detailView == null) return;   //disabling Columns   if(detailView.LevelName == "list1")       foreach(var column in detailView.Columns)           column.Visible = false;}为了说明我的问题,我附上了带有删除所有列的卡片的图片。
查看完整描述

1 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

我成功地完成了这项任务。我认为最简单的答案是在 MasterRowEmpty 事件中将 e.IsEmpty Arg 设置为 true。看下面的代码:


void gridView_MasterRowEmpty(object sender, MasterRowEmptyEventArgs e)

{

    GridView view = sender as GridView;

    if(view.GetRelationName(e.RowHandle, e.RelationIndex) == "list1")   // == "Card Name"

        e.IsEmpty = true;

}


查看完整回答
反对 回复 2021-10-09
  • 1 回答
  • 0 关注
  • 145 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信