我有一个窗口,其中包含一个网格,其中包含另一个带有 InputBindings 的网格(在 Enter 和 Delete 键上),以及一个只读 DataGrid。
当 DataGrid 获得焦点时,InputBindings 停止触发它们的命令。然后,在 InputBindings 可以工作之前,我被迫手动将焦点分配给另一个控件。
我怎样才能绕过这种行为?我尝试使用几乎所有与输入/键盘相关的 DataGrid 属性,但没有成功。
这是 XAML,尽管它并没有带来太多好处:
<Grid>
<Grid.InputBindings>
<KeyBinding Key="Enter" Command="{Binding DoStuff}"/>
<KeyBinding Key="Delete" Command="{Binding UndoStuff}"/>
</Grid.InputBindings>
<!-- stuff... -->
<Grid >
<!-- more stuff... -->
<DataGrid IsReadOnly="True" ItemsSource="{Binding SomeProperty}" SelectedItem="{Binding SomeSelectedProperty, Mode=TwoWay}">
<DataGrid.Columns>
<!-- blah -->
</DataGrid.Columns>
</DataGrid>
</Grid>
</Grid>