我曾经使用listview获得以下代码:
private void ListViewSelectionChanged(object sender, SelectionChangedEventArgs e)
{
foreach (Exam exam in e.RemovedItems)
{
ViewModel.SelectedExams.Remove(exam);
}
foreach (Exam exam in e.AddedItems)
{
ViewModel.SelectedExams.Add(exam);
}
}
现在我改为数据网格,但是我收到一条错误消息:错误1'System.EventArgs'不包含'RemovedItems'的定义,也没有扩展方法'RemovedItems'接受类型'的第一个参数可以找到System.EventArgs'(您是否缺少using指令或程序集引用?)
private void DataGridSelectionChanged(object sender, EventArgs e)
{
foreach (Exam exam in e.RemovedItems)
{
ViewModel.SelectedExams.Remove(exam);
}
foreach (Exam exam in e.AddedItems)
{
ViewModel.SelectedExams.Add(exam);
}
}
任何人都可以通过告诉我如何捕获数据网格中的选定行来帮助我,就像我在listview中捕获它们一样。
答案 0 :(得分:1)
DataGrid的SelectionChanged
事件接受SelectionChangedEventArgs
作为参数(与ListView的SelectionChanged事件相同),而不是基础EventArgs
:
private void DataGridSelectionChanged(object sender, SelectionChangedEventArgs e)
此处e.RemovedItems
和e.AddedItems
可用。
答案 1 :(得分:0)
SelectionChanged甚至没有为我开火,
或许试试SelectedCellsChanged
? - WPF Datagrid: SelectionChanged event isn't raised when SelectionUnit="Cell"
有关MSDN论坛上的SelectionChanged的更多信息 - http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/e1dc5abc-2f94-4653-a0a8-ee9b6adcb165
同时获取所选单元格的值WPF Toolkit DataGrid SelectionChanged Getting Cell Value