0

サーバー モードで GridControl をクラスの配列 ( List<Product>) にバインドします。データはデータベースから部分的に取得されます。つまり、ID はデータベースから取得されますが、コード内で名前に変換されます (追加の読み取り専用プロパティ)。

グリッドには、ID ではなく名前が表示されます。しかし、グリッド ヘッダーをクリックすると、ID で並べ替えたい、つまり、"Product Title" ヘッダーをクリックすると、実際には "Product ID" で並べ替えたい。

それ、どうやったら出来るの?

4

2 に答える 2

0

リストの並べ替えを試すことができます。

以下を試してください:

myDataSource.Sort((x,y) => x.ProductID.CompareTo(y.ProductID));
myGridView.RefreshData();
于 2013-02-11T14:12:34.663 に答える
-1

簡単な解決策:

グリッドビューのデータソースを追加ID columnし、リンクをたどってグリッドに並べ替えを実装します。これを実装する方法はいくつかあります。あなたも使用することができSortingます

grid.Columns["ID"].SortOrder = ColumnSortOrder.Ascending;

またはCustom Sorting、以下のように使用します。

並べ替えモードとカスタム並べ替え

grid.ItemsSource = your list datasource;
grid.PopulateColumns();
grid.Columns[0].SortMode = ColumnSortMode.Custom;
grid.SortBy(grid.Columns[0]);  

次に、GridControl.CustomColumnSortイベントを処理します。

private void grid_CustomColumnSort(object sender, CustomColumnSortEventArgs e) {
    e.Result = Comparer<int>.Default.Compare(e.ListSourceRowIndex1,
        e.ListSourceRowIndex2);

    e.Handled = true;
}

参照:
コードでの並べ替え
方法:カスタム並べ替えを実装する

于 2013-02-12T07:07:56.717 に答える