Как остановить событие событие - PullRequest
0 голосов
/ 17 октября 2019

Я работаю над проектом 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;
            }
        }
...