我目前正在尝试获取用户选择的所选数据网格行的集合(多行选择)。
每一行绑定到一个可视对象,我想将其显示为选中“
因此,对于数据网格,我添加了这种风格:
<Style TargetType="DataGridRow">
<EventSetter Event="Selected" Handler="DataGrid_RowSelectionChanged" />
</Style>
因此,当用户选择一行时,我会触发一个事件。
但是,当选择一行并进入事件时。所选项目尚未更新,它仍然显示我以前选择的内容。 DataGrid.CurrentItem显示我刚刚单击并即将被选中的行,但由于它的多选,我希望能够获得当前选中的所有行并使我的可视对象“突出显示”
有没有办法从datagrid获取所选项目的MOST更新列表?在我选择新行后,是否有可以使用的事件?
谢谢和问候, 千电子伏
答案 0 :(得分:2)
您想要使用DataGrid.SelectionChanged事件。 SelectionChangedEventArgs
将包含在选择更改时添加或删除的项目。
DataGrid dg = new DataGrid();
dg.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(OnSelectionChanged);
void OnSelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
{
foreach (var addedItem in e.AddedItems)
{
//do stuff
}
foreach (var removedItem in e.RemovedItems)
{
//do stuff
}
}