Witam kolegów (i koleżanki?)!
Natknąłem się pewien problem z sortowaniem DataGridView, który zbindowany jest z DataSet'em.
dataGridView1.DataSource = ds.Tables["TABELA"];
W DGV wyświetlam tylko kilka kolumn (AutoGenerateColumns wyłączone) oraz jedną która jest ukryta - id. Jest ona jednocześnie primarykey'em w datasecie.
Po zaznaczeniu któregoś z wyświetlonych wierszy w DGV wypełniam danymi, pobranymi z datasetu, kilkanaście textBoxów.
Poprzez event DGV_SelectionChanged pobieram ID i wyszukuje wpisu o tej samej wartości w DataSecie.
foreach(DataGridViewRow dgvRow in dataGridView1.SelectedRows)
{
pobraneId = dgvRow.Cells["id"].Value;
}
datasetIndex = ds.Tables["TABELA"].DefaultView.Find(pobraneId);
Tak otrzymuje index interesującego mnie wiersza w tabeli. Następnie przesyłam dane do kontrolek.
kontrolka.Text = ds.Tables["TABELA"].Rows[datasetIndex][1].ToString();
kontrolka2.Text = ds.Tables["TABELA"].Rows[datasetIndex][2].ToString();
Wszystko działa tak jak powinno do momentu kiedy nie posortuje wpisów w DGV naciskając na "header". Po takim posortowaniu wartość "pobraneId" ustawia się na "-1". Od razu wywala błąd o braku wpisu w dataSecie o podanym indexie.
Czyżby sortowanie DGV miało wpływ na sortowanie wpisów w DataSecie? o.O
Niestety wyłączenie sortowania kolumn nie wchodzi w grę ;)
Z góry dziękuję za poświęcony mojemu problemowi czas.