WPF DataGrid仅在行上单击鼠标左键

WPF DataGrid仅在行上单击鼠标左键,wpf,datagrid,inputbinding,Wpf,Datagrid,Inputbinding,如何在datagrid上单击鼠标左键,使其仅在选定行时启用? 以下是一个例子: <DataGrid> <DataGrid.InputBindings> <MouseBinding MouseAction="LeftDoubleClick" Command="{Binding LeftClickCommand}"/> </DataGrid.InputBindings> </DataGrid>

如何在datagrid上单击鼠标左键,使其仅在选定行时启用? 以下是一个例子:

<DataGrid>
    <DataGrid.InputBindings>
            <MouseBinding MouseAction="LeftDoubleClick" Command="{Binding LeftClickCommand}"/>
    </DataGrid.InputBindings>
</DataGrid>


现在,当我单击datagrid中的任何一行时,也会执行该命令,但我只想在单击一行时执行该命令。

您可以测试所选项目是否为空 这只是一种可能对你有帮助的方法 XAML:


我知道这不是最好的方法,而是在你找到更好的主意之前的一种方法;)

您可以测试所选项目是否为空 这只是一种可能对你有帮助的方法 XAML:


我知道这不是最好的方法,而是在你找到更好的主意之前的一种方法;)

这只在applicationstart上工作一次。因为如果在datagrid中选择on项,则所选值不为null。如果我点击datagrid背景,所选项目也不是空的。我可以将其重置为null或类似的值吗?@user2025830:命令完成后,您可以使_selectedPersons=null,我编辑我的代码这在applicationstart上只工作一次。因为如果在datagrid中选择on项,则所选值不为null。如果我点击datagrid背景,所选项目也不是空的。我可以将其重置为null或类似的值吗?@user2025830:命令完成后,您可以使_selectedPersons=null,我编辑代码
        <Custom1:DataGrid IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding Persons}" SelectedItem="{Binding SelectedPerson}"  >
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="MouseDoubleClick">
                <Custom:EventToCommand CommandParameter="{Binding SelectedItem, ElementName=dg}" Command="{Binding AfficheCommand, Mode=OneWay}"/>
            </i:EventTrigger>
        </i:Interaction.Triggers>
    private PersonModel _selectedPersons = new PersonModel();
    public PersonModel SelectedPerson
    {
        set
        {
            _selectedPersons = value;
        }
    }
    public ICommand AfficheCommand
    {
        get
        {
            return new DelegateCommand(AfficheText);
        }
    }

    private void AfficheText()
    {
        if(_selectedPersons != null)
           MessageBox.Show(_selectedPersons.FirstName);

       _selectedPersons  = null;
    }