/// <summary> /// Called when the user changes the checked state of an item. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Control_CheckedChanged(object sender, ListCheckedEventArgs e) { var listModel = e.Record as TListModel; if (CheckedChangedHandler != null && listModel != null) { CheckedChangedHandler(listModel, e.Checked); } }
public void ListCheckedStateChanged(object sender, ListCheckedEventArgs e) { LocalDataBase.EnableBlocks(e.checkState, e.message); ((BlocksControlMenu)CustomMenu).ResetListData(LocalDataBase.GetAllBlocksList()); BlocksDataAdapter.instance.Fill(LocalDataBase.GetEnabledBlocksList()); }
protected void OnCheckBoxClicked(object sender, ListCheckedEventArgs e) { if (_checkBoxActivated == false) { return; } _checkBoxActivated = false; CheckBox cb = e.OriginalSource as CheckBox; /* * ListBoxItem item = WpfFinder.getParentFromTemplate(cb, DependencyObjectType.FromSystemType(typeof(ListBoxItem))) as ListBoxItem; * //ListBox view = WpfFinder.getParentFromTemplate(item, DependencyObjectType.FromSystemType(typeof(ListBox))) as ListBox; * if (item == null) return; * ListRow row = item.Content as ListRow; */ e.RowIndex = (Rows.IndexOf(sender as ListRow)); int row_index = e.RowIndex; int col_index = e.ColumnIndex; if ((System.Windows.Input.Keyboard.GetKeyStates(Key.LeftShift) & KeyStates.Down) == KeyStates.Down) { if (BeforeClickedRow >= 0) { int min = (BeforeClickedRow < row_index) ? BeforeClickedRow : row_index; int max = (BeforeClickedRow < row_index) ? row_index : BeforeClickedRow; for (int i = min; i <= max; i++) { rowCheckboxClicked(Rows[i], true); CheckedIndices.Add(i); CheckedRows.Add(Rows[i]); if (E_CheckBoxChanged != null) { E_CheckBoxChanged(sender, new ListCheckedEventArgs((Boolean)cb.IsChecked, row_index, col_index)); } } } } else if ((System.Windows.Input.Keyboard.GetKeyStates(Key.LeftCtrl) & KeyStates.Down) == KeyStates.Down) { if (BeforeClickedRow >= 0) { int min = (BeforeClickedRow < row_index) ? BeforeClickedRow : row_index; int max = (BeforeClickedRow < row_index) ? row_index : BeforeClickedRow; for (int i = min; i <= max; i++) { rowCheckboxClicked(Rows[i], false); if (CheckedIndices.IndexOf(i) >= 0) { CheckedIndices.Remove(i); CheckedRows.Remove(Rows[i]); } if (E_CheckBoxChanged != null) { E_CheckBoxChanged(sender, new ListCheckedEventArgs((Boolean)cb.IsChecked, row_index, col_index)); } } } } else { if (E_CheckBoxChanged != null) { E_CheckBoxChanged(sender, new ListCheckedEventArgs((Boolean)cb.IsChecked, row_index, col_index)); } BeforeClickedRow = row_index; if (cb.IsChecked == true && CheckedIndices.IndexOf(row_index) < 0) { CheckedIndices.Add(row_index); CheckedRows.Add(Rows[row_index]); } else if (CheckedIndices.IndexOf(row_index) >= 0) { CheckedIndices.Remove(row_index); CheckedRows.Remove(Rows[row_index]); } } _checkBoxActivated = true; }