0

我使用 AutoPopulateColumns 系统在 DataGrid 上显示我的结构。是否有任何属性的属性可以在 ColumnChooser 窗口上显示属性,而不是在网格上?

谢谢。

4

1 回答 1

0

好的,我找不到这样的默认属性,所以我创建了自己的空属性,称之为“ShowInColumnChooserAttribute”。

使用此属性标记我在 dataGrid 上不需要但在 ColumnChooser 上需要的所有属性

在 dataGrid 的事件“ColumnsPopulated”中执行以下操作:

        var hiddenList = new List<string>();
        var r = dataTable.ItemsSource.GetType().GetGenericArguments()[0];
        foreach (var prop in r.GetProperties())
            if (prop.GetCustomAttributes(typeof(ShowInColumnChooserAttribute), true).Length > 0)
                hiddenList.Add(prop.Name);
        foreach (var column in ((DevExpress.Xpf.Grid.GridControl)sender).Columns)
                column.Visible = !hiddenList.Contains(column.FieldName);

我认为这是非常简单和漂亮的解决方案!希望这会有所帮助!

于 2012-06-16T03:28:07.160 回答