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);
Я думаю, что это очень простое и красивое решение! Надеюсь, это поможет!