[DataGrid在按下Delete键时失去焦点

问题描述 投票:4回答:4

我正在执行MVVM,其中将DataGrid绑定到ObservableCollection,并使用DeleteItemCommand如下所示连接到DataGrid.InputBindings:

  <DataGrid.InputBindings>
      <KeyBinding Key="Delete" Command="{Binding DeleteItemCommand}" />
  </DataGrid.InputBindings>

当用户按下Delete键但网格失去焦点时,将删除项目和行。您必须单击或制表到网格,以便在单击“删除”以删除另一行之前,它可以重新获得焦点(非常令人讨厌)。我尝试设置DataGrid.CanUserDeleteRows =“ False”,但没有任何区别。

我用ListView替换了DataGrid,并且ListView保持了焦点。

这是DataGrid的错误,还是我做错了什么?和平与爱,和平与爱!

wpf wpfdatagrid
4个回答
3
投票

我通过使用WPF DataGrid的内置功能解决了这个问题。如果基础集合是可编辑的,则网格默认会处理删除项(如果该集合专用于此目的,那没问题,否则可以添加中间集合...)。我避免了任何键绑定,而是像这样设置网格:<DataGrid ItemsSource="{Binding InvoiceItems}" IsReadOnly="False" CanUserDeleteRows="True" CanUserAddRows="False">ItemsSource集合的类型为BidningCollection <>


0
投票

不久前我碰碰到了。不知何故此事件从未引发。尝试this approach


0
投票

您是否检查过此答案?


0
投票

我不得不以与jl.'s answer不同的方式解决该问题,因为它无法进行任何[[之前

© www.soinside.com 2019 - 2024. All rights reserved.