如何在数据网格上执行左键单击仅在选择行时启用? 这是一个例子:
<DataGrid>
<DataGrid.InputBindings>
<MouseBinding MouseAction="LeftDoubleClick" Command="{Binding LeftClickCommand}"/>
</DataGrid.InputBindings>
</DataGrid>
现在,当我点击datagrid中没有行时,命令也会执行,但我只想在点击一行时执行它。
答案 0 :(得分:1)
您可以测试所选项目是否为空 这只是一种可能对你有帮助的方式 XAML:
<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;
}
我知道这不是最好的方式,而是一种方法,直到你找到一个更好的主意;)