WPF-取消选择数据网格项

WPF-取消选择数据网格项,wpf,datagrid,Wpf,Datagrid,我有以下窗口: 当我在数据网格外单击时,仍然会选择一些内容,当我更改选项卡并返回时,这些内容会变灰: 我想在datagrid外部单击时取消选择项目,但这给了我一个问题,因为更改按钮在外部,它取消选择所有内容,没有其他内容需要更改,并且我的命令更改按钮状态do disabled: 我用一个简单的TargetedTriggerAction实现了这一点,但我无法使它工作在这样一种方式,即它只能在数据网格外部和按钮外部单击时触发。我试图在选项卡内的网格上创建一个GotFocus,但它不会激发,它只

我有以下窗口:

当我在数据网格外单击时,仍然会选择一些内容,当我更改选项卡并返回时,这些内容会变灰:

我想在datagrid外部单击时取消选择项目,但这给了我一个问题,因为
更改
按钮在外部,它取消选择所有内容,没有其他内容需要更改,并且我的
命令
更改按钮状态do disabled:

我用一个简单的
TargetedTriggerAction
实现了这一点,但我无法使它工作在这样一种方式,即它只能在数据网格外部和按钮外部单击时触发。我试图在选项卡内的网格上创建一个
GotFocus
,但它不会激发,它只在选项卡项或选项卡控件中激发,并且基本上在绑定到它时在任何地方激发

我的结构是:Window->DockPanel->TabControl->TabItem->Grid(按钮的堆栈面板)(Datagrid)

My
TargetedTriggerAction

public class TargetedTriggerActionDataGridUnselect : TargetedTriggerAction<DataGrid>
{
    protected override void Invoke(object parameter)
    {
        this.Target.UnselectAll();
    }
}
public类targetedtriggerationdatagridunselect:targetedtriggeration
{
受保护的覆盖无效调用(对象参数)
{
this.Target.UnselectAll();
}
}

我不明白。是否要取消选择该项目,但保持“更改”按钮处于活动状态?或者你只是想让灰色背景消失(只是视觉效果)?我想让用户能够取消选择某个东西,我看不出,一旦我选择了某个东西,它是如何被选择的,直到我关闭程序…我不想做一个按钮来取消选择,我觉得在datagrid之外单击是很自然的,它会取消选择datagrid内部的内容。您可以通过按住CTRL键并单击datagrid行来取消选择行。您正在尝试实现一个相互冲突的功能。如果在网格外单击后尝试取消选择,则无法启用“更改”按钮,因为未选择任何记录。是的,我知道,我希望它仅在单击网格外时有效,但在单击按钮时无效,即在灰色区域中单击时无效