Moi,
Tässä kevyempi esimerkki alkuperäisestä ongelmasta.
Taulussa sarakkeet ID, DateTime, Group ja Order
Rivit pitäisi lajitella aikajärjestykseen DateTime sarakkeen mukaan, mutta siten että jos riville on määrätty Group arvoja, lajitellaan saman Group arvon ja saman DateTime.date arvon omaavat rivit peräkkäin aikajärjestykseen... hankala selittää. Mutta em. vuoksi taulussa on myös Order sarake johon asetetaan järjestysnumerot DataSetissä aina kun rivin DateTime tai Group arvo muuttuu ja BindingSourcen olisi tarkoitus sitten lajitella rivit Order sarakkeen mukaisesti. (En tiedä olisiko BindingSourcen Sort propertyä käyttämällä saanut jotenkin rivit lajiteltua haluamallani tavalla)
Mutta ei tuolla Group arvolla nyt kuitenkaan tässä esimerkissä ole mitään virkaa kun ongelma ilmenee myös ilman sitäkin, eli unohda se.
Kun käynnistät Formin on rivit lajiteltu oikein. Mutta kun Muutat esimerkiksi ID:4 kellonaikaa 16.00 -> 11.00, käynnistyy datasetissä RenumberOrderColumn ja rivien Order sakake on taas oikein, mutta ID:4 rivi on väärässä paikassa. Järjestys muuttuu oikeaksi kun valitset ID:4 rivin ja sen jälkeen jonkin toisen rivin.
DGV.Refresh, BS.ResetBinding yms ei auta.
Eli miksi BindingSource ei sorttaa rivejä?!!? Vai mistä tuollainen käyttäytyminen johtuu?
Formilla on myös DS.RejectChanges nappi joka tekee nimensämukaisen komennon mutta sitä klikkailemalla BS.position käyttäytyy oudosti.
Ok, selvisi.
RenumberOrderColumn pitää kutsua RowChanged eventissä eikä ColumnChanged eventissä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.