如何在RibbonButton.Click上引发DataGrid.LostFocus?

下面的代码使用ToolBar并正确地导致DataGrid.LostFocus(通过在执行命令之前提交任何未经注释的行编辑);
<Toolbar FocusManager.IsFocusScope="False">
  <Button Command="{Binding CommandName}" />
</ToolBar>
<DataGrid ... />
但是,我现在尝试使用功能区(oct10版本)执行相同操作,但以下不会导致引发DataGrid.LostFocus;
<Ribbon>
  <RibbonTab>
    <RibbonGroup FocusManager.IsFocusScope="False">
      <RibbonButton Command="{Binding CommandName}" />
    </RibbonGroup>
  </RibbonTab>
</Ribbon>
<DataGrid ... />
如何使用功能区提升此事件?我试过通过其他级别(Ribbon,RibbonTab,RibbonButton)移动IsFocusScope无济于事。     
已邀请:
不喜欢这样,因为需要代码,但没有任何其他答案;
<Ribbon>
  <RibbonTab>
    <RibbonGroup>
      <RibbonButton Command="{Binding CommandName}" Click="dropFocus" />
    </RibbonGroup>
  </RibbonTab>
</Ribbon>
<Control IsTabStop="False" Name="focusControl"/>
<DataGrid ... />
而背后的代码;
private void dropFocus(object sender, RoutedEventArgs e)
{
  Keyboard.Focus(focusControl);
}
    
尽管这个问题超过6年,我也想发布我的解决方案: 只需将PreviewMouseDown的Eventhandler添加到RibbonWin并将焦点设置为null ...
private void RibbonWin_PreviewMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
    FocusManager.SetFocusedElement(this, null);
}
    

要回复问题请先登录注册