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)

  1. if datagridlista.CurrentColumn.DisplayIndex = 1 then

  2. if datagridlista.Items(datagridlista.SelectedIndex)(1) = true then

  3.  		datagridlista.Items(datagridlista.SelectedIndex)(1) = false
    

    else

  4.  		datagridlista.Items(datagridlista.SelectedIndex)(1) = true	
    

    end if

    end if


Czyli w skrócie:

  1. 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

  2. Sprawdzamy czy nasz checkbox ma wartość TRUE czyli czy został już wcześniej kliknięty

  3. 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