Мне нужно захватить событие нажатия клавиши, чтобы получить значение ключа из моего пользовательского открытого класса DataGrid ExtendedDataGrid: DataGrid {} и запустить его в моей модели представления с нажатой клавишей.Чтобы быть точным, я хочу проверить, нажал ли кто-то клавишу Delete, а затем удалить запись из текущего выбранного без использования кода, потому что вся моя логика в моей модели представления.
Мой элемент управления ExtendedDataGrid является новым иЯ создал коллекцию GridColumns (мое собственное определение класса), которая устанавливает столбцы из модели представления и работает там, где модель представления отправляет значение в DependencyProperty.Однако на этот раз я хочу захватить ввод с клавиатуры из PreviewKeyDown и отправить его в модель представления.
Я создал метод в своем классе ExtendedDataGrid и поместил в конструктор: PreviewKeyDown += OnKeyDown
;Это запускает событие, как ожидалось.Я создал DependencyProperty:
public static readonly DependencyProperty KeyDownValueProperty =
DependencyProperty.Register("KeyDownValue", typeof(Key), typeof(ExtendedDataGrid), null, null);
Затем я создал метод:
private void OnKeyDown(object Sender, KeyEventArgs Args)
{
SetValue(KeyDownValueProperty, Args.Key);
}
Затем я объявил оболочку свойства:
[Bindable(true)]
public Key KeyDownValue
{
get
{
return (Key)GetValue(KeyDownValueProperty);
}
set
{
SetValue(KeyDownValueProperty, value);
}
}
Последнее, что я сделалбыло добавить в XAML, KeyDownValue = "{Binding Path = KeyThatWasPressed}".Это объявлено как открытое свойство в моей модели представления типа Key.
Я надеялся, что нажатие клавиши вызовет событие, которое я создал, и затем отправит значение в Свойство Dependency.и пусть он уведомит об изменении / значении в моей модели представления, чего он не делает.
Как только я получу это, все остальное встанет на свои места, так как я быстро учусь.Я просто скучаю по некоторым основам здесь.Любая помощь будет очень.Как только я выучу достаточно, я вполне могу начать отвечать на другие вопросы новичка на эту тему.