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 に答える