В моем элементе управления Silverlight 4 DataGrid
я хотел добавить очень простое поведение, которое выполняет пользовательскую команду для клавиши. Нажмите - фактически, зафиксируйте выбранный элемент в сетке данных при нажатии клавиши ВВОД.
ПокаПоведение на самом деле работает (см. мой код ...
//.... in "OnAttached()..."
this.AssociatedObject.AddHandler(Control.KeyDownEvent, new KeyEventHandler(OnKeyDown), true);
private void OnKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
InvokeCommand();
}
}
...) У меня есть проблема, что DataGrid, кажется, обрабатывает нажатие клавиши ВВОД сам и переходит к следующей строке.Очевидно, что происходит то, что неверная строка фиксируется, потому что когда я обрабатываю нажатие клавиши, выбранная строка уже изменилась.
Вот код XAML:
<data:DataGrid
AutoGenerateColumns="False"
IsReadOnly="True"
ItemsSource="{Binding Path=Data}"
SelectedItem="{Binding SelectedRow, Mode=TwoWay}">
<data:DataGrid.Columns>
<data:DataGridTextColumn Binding="{Binding A}" />
<data:DataGridTextColumn Binding="{Binding B}" />
<data:DataGridTextColumn Binding="{Binding C}" />
</data:DataGrid.Columns>
<i:Interaction.Behaviors>
<behaviors:EnterBehavior Command="{Binding CommitCommand}" />
</i:Interaction.Behaviors>
</data:DataGrid>
Можете ли вы сказать,Как я могу предотвратить событие ENTER по умолчанию?