Witam serdecznie.
Jeśli ktoś miał problem z podwójnym kliknięciem w "checkbox'a" w DataGrid to może to choć trochę pomoże.
Stworzyłem bazę danych w Sqllite która ma dwie kolumny. Kolumna 1 "Imię" oraz kolumnę 2 "Usuń"
Kolumna 2 jest typu Boolean
Po zbindowaniu danych z DataGridem o nazwie dataGridLista napisałem obsługę zdarzenia datagridLista_SelectedCellsChanged
Private Sub datagridLista_SelectedCellsChanged(ByVal sender as Object, ByVal e as System.Windows.Controls.SelectedCellsChangedEventArgs)
-
if datagridlista.CurrentColumn.DisplayIndex = 1 then
-
if datagridlista.Items(datagridlista.SelectedIndex)(1) = true then
-
datagridlista.Items(datagridlista.SelectedIndex)(1) = false
else
-
datagridlista.Items(datagridlista.SelectedIndex)(1) = true
end if
end if
Czyli w skrócie:
-
Sprawdzamy czy kliknięta komórka znajduje się w kolumnie numer 1 (kolumny liczone są od 0 ) czyli w naszym przypadku kolumnie "checkbox" zapobiega to sytuacji w której po kliknięciu w dowolną komórkę zmienia się wartość naszego checkboxa
-
Sprawdzamy czy nasz checkbox ma wartość TRUE czyli czy został już wcześniej kliknięty
-
jeśli nie to go zaznaczamy 4)
To tyle.
Jeśli ktoś zna łatwiejszy sposób to piszcie bo na necie nigdzie nie mogłem znaleźć niczego przydatnego, ale mogłem coś przeoczyć:-)
Pozdrawiam serdecznie