DevExpress DataGrid's ColumnChooser

Я использую систему AutoPopulateColumns для отображения моей структуры в DataGrid. есть ли какой-либо атрибут свойства для отображения свойства в окне ColumnChooser, а не в сетке?

Благодарю.

1 ответ

Решение

Хорошо, я не могу найти такой атрибут по умолчанию, поэтому я создал свой собственный пустой атрибут, назовите его "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);

Я думаю, что это очень простое и красивое решение! Надеюсь, это поможет!

Другие вопросы по тегам