0

我目前正在尝试获取用户选择的选定数据网格行的集合(启用多行选择)。

每行都绑定到我想显示为选中的视觉对象“

因此,对于数据网格,我添加了这种样式:

<Style TargetType="DataGridRow">
      <EventSetter Event="Selected" Handler="DataGrid_RowSelectionChanged" />
</Style>

因此,当用户选择一行时,我会触发一个事件。

但是,选择行并进入事件时。所选项目尚未更新,它仍然显示我之前选择的内容。DataGrid.CurrentItem 显示我刚刚单击并即将被选中的行,但由于它是多选的,我希望能够获得当前选中的所有行并让我的视觉对象“突出显示”

有没有一种方法可以让我从数据网格中获取所选项目的最新更新列表?在我选择我的新行之后,我可以使用触发的事件吗?

谢谢和问候, 凯夫

4

1 回答 1

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
            }
        }
于 2011-01-21T14:32:44.433 回答