Я создал свой собственный элемент управления DataGrid, который наследуется от DataGrid
. Я объявил свойство зависимости, которое я хочу использовать на уровне столбца, поэтому в событии PreviewKeyDown я проверяю значение и решаю, нужно ли обрабатывать эту текущую ячейку или нет.
public class MyDataGrid : DataGrid
{
public static DependencyProperty HandleKeyPressEventProperty =
DependencyProperty.RegisterAttached(
"HandleKeyPressEvent",
typeof(bool),
typeof(MyDataGrid),
new FrameworkPropertyMetadata(true));
public bool HandleKeyPressEvent
{
get { return (bool)GetValue(HandleKeyPressEventProperty); }
set { SetValue(HandleKeyPressEventProperty, value); }
}
protected override void OnPreviewKeyDown(KeyEventArgs e)
{
if (HandleKeyPressEvent)
{
HandleKeyPress(e);
}
else
{
base.OnPreviewKeyDown(e);
}
}
}
Мой XAML выглядит так:
<MyDataGrid x:Name="myDataGrid">
<DataGridTextColumn MyDataGrid.HandleKeyPressEvent = "True" />
<DataGridTemplateColumn MyDataGrid.HandleKeyPressEvent = "False"/>
</MyDataGrid>
Но у меня реальная проблема с доступностью этого свойства зависимости на уровне столбца. То, что я пытаюсь сделать, так же, как Grid.Column
. Может ли кто-нибудь помочь мне с этим?