protected override DependencyObject GetContainerForItemOverride() { CheckBoxTreeViewItem checkBoxTreeViewItem = new CheckBoxTreeViewItem(); OnNewContainer(checkBoxTreeViewItem); return(checkBoxTreeViewItem); }
internal void OnNewContainer(CheckBoxTreeViewItem newContainer) { newContainer.Checked -= _checkedEventHandler; newContainer.Unchecked -= _uncheckedEventHandler; newContainer.Checked += _checkedEventHandler; newContainer.Unchecked += _uncheckedEventHandler; }
protected override DependencyObject GetContainerForItemOverride() { PropertyInfo parentTreeViewPi = typeof(TreeViewItem).GetProperty("ParentTreeView", BindingFlags.Instance | BindingFlags.NonPublic); CheckBoxTreeView parentCheckBoxTreeView = parentTreeViewPi.GetValue(this, null) as CheckBoxTreeView; CheckBoxTreeViewItem checkBoxTreeViewItem = new CheckBoxTreeViewItem(); if (parentCheckBoxTreeView != null) { parentCheckBoxTreeView.OnNewContainer(checkBoxTreeViewItem); } return(checkBoxTreeViewItem); }
private static void CheckedPropertyChanged(DependencyObject source, DependencyPropertyChangedEventArgs e) { CheckBoxTreeViewItem checkBoxTreeViewItem = (CheckBoxTreeViewItem)source; if (checkBoxTreeViewItem.IsChecked) { checkBoxTreeViewItem.OnChecked(new RoutedEventArgs(CheckedEvent, checkBoxTreeViewItem)); } else { checkBoxTreeViewItem.OnUnchecked(new RoutedEventArgs(UncheckedEvent, checkBoxTreeViewItem)); } }
void CheckBoxTreeViewItemChecked(object sender, RoutedEventArgs e) { CheckBoxTreeViewItem checkBoxTreeViewItem = sender as CheckBoxTreeViewItem; Action action = () => { if (checkBoxTreeViewItem == null) { return; } var checkedItem = checkBoxTreeViewItem.Header; if (!checkedItem.GetType().Name.Equals("NamedObject")) { CheckedItems.Add(checkedItem); } }; Dispatcher.BeginInvoke(action, DispatcherPriority.ContextIdle); }