123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- using System.Windows.Input;
- using System.Windows;
- using System.Windows.Controls;
- using System;
- using System.ComponentModel;
- using System.Windows.Media;
- namespace CustomControls
- {
- [DesignTimeVisible(false)]
- public partial class ListView : System.Windows.Controls.ListView
- {
- public event EventHandler CancelEdit;
- public event EventHandler AcceptEdit;
- public event EventHandler FetchMoreItems;
- 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;
- }
- }
- private void ListView_ScrollChanged(object sender, ScrollChangedEventArgs e)
- {
- if (e.VerticalOffset > 0 && e.ExtentHeight - e.ViewportHeight <= e.VerticalOffset)
- {
- FetchMoreItems?.Invoke(this, EventArgs.Empty);
- }
- }
- public ListView()
- {
- InitializeComponent();
- }
- }
- }
|