こんにちは、グリッドコントロール(winforms dexexpress)のチェックボックスに問題があります。「Check」、「Name」、「Descr」の 3 つの列があります。ユーザーは、たとえば「名前」などの列に並べ替えを適用し、一部の行でチェックボックス (「チェック」) をオンにできます。行のチェックボックスをクリックした後にチェックされたアイテムを取得したい。しかし、行のインデックスが間違っています(デフォルトのソートのインデックスです)。ソートを適用した後に正しいインデックスを取得するためのアイデアはありますか? 問題は、他の列の並べ替えの後に別のチェックボックスが選択されていることです。私はこれについて読んだhttp://documentation.devexpress.com/#WindowsForms/CustomDocument2531しかし、それは私を助けません、本当にそれを行う方法がわかりません
private void gridViewT_CellValueChanging(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
{
if (e.Column.Name == "CheckColumn" && e.RowHandle > -1)
{
if (e.Value != null && (bool)e.Value) {
DataRow dr = ((DataTable)gridControlT.DataSource).Rows[e.RowHandle];
DoSomeThing(dr);
}
}
}
したがって、e.RowHandle(テーブルへのインデックスを意味する)は、古い別の列でソートした後です。チェックボックスのある列である CheckColumn は、別の列によってソートされません。