2
私はWPFツールキットDataGrid
を含むユーザーコントロールを持っています。このコントロールは、アプリのさまざまな場所で使用されます。グリッドには、表示されるデータの種類に関する知識はありません。グリッドがどのデータに格納されていても、最初の列でグリッドを最初にソートする方法はありますか?最初の列にバインドされたプロパティのPropertyName
がわからないので、CollectionViewSource
を使用することはできません。そこにこのロジックを配置し、使用して、最初のDataGrid並べ替え
void dataGrid_AutoGeneratedColumns(object sender, EventArgs e)
{
var firstCol = dataGrid.Columns.First();
firstCol.SortDirection = ListSortDirection.Ascending;
dataGrid.Items.SortDescriptions.Add(new SortDescription(firstCol.SortMemberPath, ListSortDirection.Ascending));
}
私はあなたが派生別のDataGrid
コントロールを作成することをお勧め:最初の列を
dataGrid.AutoGeneratedColumns += dataGrid_AutoGeneratedColumns;
をし、並べ替え:
ご回答ありがとうございます。最初の列は、ソート方向インジケータがその列に表示されますが、実際に列をクリックするまでデータはソートされていないため、データがその列でソートされていることを示します。 – ihatemash
あなたは正しいです、私はSortDescriptionをコレクションに追加するのを忘れていました。私はコードを更新しました。 – doblak
列が自動生成された列でない場合、ターゲットDataGridのDataContextを設定した直後に、dataGrid_AutoGeneratedColumnsのコードを引き続き使用できます。 – laishiekai