12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Data;
- using System.Windows.Input;
- namespace SAGA.DotNetUtils.WPF.UserControl.ComboboxTreeView
- {
- public class ExtendedTreeView : TreeView
- {
- protected override DependencyObject GetContainerForItemOverride()
- {
- var childItem = ExtendedTreeViewItem.CreateItemWithBinding();
- childItem.OnHierarchyMouseUp += OnChildItemMouseLeftButtonUp;
- return childItem;
- }
- private void OnChildItemMouseLeftButtonUp(object sender, MouseEventArgs e)
- {
- if (this.OnHierarchyMouseUp != null)
- {
- this.OnHierarchyMouseUp(this, e);
- }
- }
- protected override void OnMouseEnter(MouseEventArgs e)
- {
- base.OnMouseEnter(e);
- this.Focus();
- }
- public event MouseEventHandler OnHierarchyMouseUp;
- }
- public class ExtendedTreeViewItem : TreeViewItem
- {
- public ExtendedTreeViewItem()
- {
- this.MouseLeftButtonUp += OnMouseLeftButtonUp;
- }
- void OnMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
- {
- if (this.OnHierarchyMouseUp != null)
- {
- this.OnHierarchyMouseUp(this, e);
- }
- }
- protected override DependencyObject GetContainerForItemOverride()
- {
- var childItem = CreateItemWithBinding();
- childItem.MouseLeftButtonUp += OnMouseLeftButtonUp;
- return childItem;
- }
- public static ExtendedTreeViewItem CreateItemWithBinding()
- {
- var tvi = new ExtendedTreeViewItem();
- var expandedBinding = new Binding("IsExpanded");
- expandedBinding.Mode = BindingMode.TwoWay;
- tvi.SetBinding(ExtendedTreeViewItem.IsExpandedProperty, expandedBinding);
- var selectedBinding = new Binding("IsSelected");
- selectedBinding.Mode = BindingMode.TwoWay;
- tvi.SetBinding(ExtendedTreeViewItem.IsSelectedProperty, selectedBinding);
- return tvi;
- }
- public event MouseEventHandler OnHierarchyMouseUp;
- }
- }
|