Я работаю над проектом WPF MVVM с Caliburn micro, и мне нужно захватить нажатие клавиши ввода, обработать его и предотвратить дальнейшее всплытие.
Я могу захватить его и обработать, но я могуне прекращайте пузыриться, установив для свойства Handle значение true.
Кто-нибудь может знать, как решить эту проблему?
Заранее большое спасибо.
Вот код xaml
<DataGrid Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="3"
x:Name="CommonLoansToDelivery"
CanUserAddRows="True"
IsReadOnly="False"
CanUserSortColumns="False"
HorizontalAlignment="Stretch">
<DataGrid.RowStyle>
<Style TargetType="DataGridRow" BasedOn="{StaticResource MetroDataGridRow}">
<Setter Property="cal:Message.Attach" Value="[PreviewKeyUp] = [Action OnKeyUp($executionContext)]"/>
</Style>
</DataGrid.RowStyle>
<DataGrid.Columns>
<DataGridTextColumn Header="Loan Number" Binding="{Binding Path=LoanNumber}" Width="*"/>
</DataGrid.Columns>
</DataGrid>
и вотКод VM для обработки события:
public void OnKeyUp(ActionExecutionContext context)
{
if (!(context.EventArgs is KeyEventArgs eventArgs))
{
return;
}
if (eventArgs.Key == Key.Enter)
{
// set this property does not stop the event bubbling
eventArgs.Handled = true;
}
}