1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- using System;
- using System.ComponentModel;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Input;
- namespace CustomControls
- {
- [DesignTimeVisible(false)]
- public partial class TreeView : System.Windows.Controls.TreeView
- {
- public Visibility CheckBoxes { get; set; }
- public Visibility Images { get; set; }
- public bool HideSelection { get; set; }
- public event EventHandler CancelEdit;
- public event EventHandler AcceptEdit;
- private void TreeViewSelectedItemChanged(object sender, RoutedEventArgs e)
- {
- TreeViewItem item = sender as TreeViewItem;
- if (item != null)
- {
- item.BringIntoView();
- e.Handled = true;
- }
- }
- private void OnAcceptEdit() => AcceptEdit?.Invoke(this, EventArgs.Empty);
- private void OnCancelEdit() => CancelEdit?.Invoke(this, EventArgs.Empty);
- private void PART_TextBox_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
- {
- var tb = sender as TextBox;
- if (tb.IsVisible)
- {
- tb.Focus();
- tb.SelectAll();
- }
- }
- private void PART_TextBox_LostFocus(object sender, RoutedEventArgs e)
- {
- OnCancelEdit();
- }
- private void PART_TextBox_KeyDown(object sender, KeyEventArgs e)
- {
- if (e.Key == Key.Escape)
- {
- OnCancelEdit();
- e.Handled = true;
- }
- else if (e.Key == Key.Enter)
- {
- OnAcceptEdit();
- e.Handled = true;
- }
- }
- public TreeView()
- {
- InitializeComponent();
- CheckBoxes = Visibility.Collapsed;
- Images = Visibility.Collapsed;
- }
- }
- }
|