0

私はその中にSilverlight 5.0アプリを持ってPagedCollectionViewいます。ObservableCollection

にバインドPagedCollectionViewしましたDataGrid

従業員のすべてのプロパティを表示したくありませんdatagrid

そして、私は自分のコラムを自分でアレンジしたいPagedCollectionView

しかし、私はそれを行う方法がわかりません

助けてください。

4

2 に答える 2

1

それには 2 つの方法があります。どちらのシナリオでも、 AutoGenerateColumn を falseに設定する必要があります。

  1. デザイン時にグリッドに表示する列が既にわかっている場合は、列を XAML に直接追加します。
  2. 設計時に列がわからず、順序と可視性を説明する属性を持つデータベースからのものである場合は、autogeneratingcolumn イベントを追加し、イベントで、列を可視にするか、列を作成せずに順序を変更することもできます.

*編集*

grid.ItemsSource = Product.GetProducts(200);
grid.AutoGeneratingColumn += grid_AutoGeneratingColumn;


void grid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e) { string headername = e.Column.Header.ToString();

        switch (headername)
        {
            case "Line":
            case "Color":
                e.Cancel = true; //Cancel the columns don't want to generate
                break;
            case "Name":
                e.Column.Header = "Name Modified";
                e.Column.DisplayIndex = 1;
                break;
            case "Price":
                e.Column.Header = "Price header";
                e.Column.DisplayIndex = 0;
                break;
            default:
                e.Cancel = true;
                break;
        }
    }


例からわかるように、Price は Name の後に来ますが、ヘッダーを変更しただけでなく、表示順序も変更しました。実行すると、価格が最初の列に表示され、名前が 2 番目の列に表示され、他のすべての列が表示されなくなります。
http://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid.autogeneratingcolumn(v=vs.95).aspx

お役に立てれば。

于 2013-02-01T14:53:24.413 に答える