【发布时间】:2021-06-03 21:51:12
【问题描述】:
目标
目标是在选定行上双击执行命令。
问题
当我双击一个单元格时,它进入编辑模式并且不执行命令。
如果我双击 Data 列右侧的空单元格 - 它会执行命令。
另外,如果我将IsReadOnly 设置为true,它可以工作.. 它只是不适用于可编辑单元格。
问题
为什么双击事件对可编辑单元格不起作用?
重现问题的代码
XAML
<DataGrid ItemsSource="{Binding SampleModels}" SelectedItem="{Binding SelectedItem}" AutoGenerateColumns="True" >
<DataGrid.InputBindings>
<MouseBinding Gesture="LeftDoubleClick" Command="{Binding Command}" />
</DataGrid.InputBindings>
</DataGrid>
型号
public class SampleModel
{
public int Id { get; set; }
public string Data { get; set; }
}
查看模型
public class SampleViewModel : BaseViewModel
{
public ObservableCollection<SampleModel> SampleModels { get; set; }
private SampleModel _selectedItem;
public SampleModel SelectedItem
{
get { return _selectedItem; }
set
{
_selectedItem = value;
OnPropertyChanged();
}
}
private void LoadData()
{
if(SampleModels == null)
{
SampleModels = new ObservableCollection<SampleModel>();
}
SampleModels.Clear();
SampleModels.Add(new SampleModel { Id = 1, Data = "Item 1" });
SampleModels.Add(new SampleModel { Id = 2, Data = "Item 2" });
}
public ICommand Command { get; }
private void TestMethod()
{
var a = SelectedItem;
}
public SampleViewModel()
{
LoadData();
Command = new RelayCommand(param => TestMethod());
}
}
【问题讨论】: