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;
 }
Example #3
0
        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);
        }
Example #4
0
        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);
        }