如何获取所有DataGrid选中的Item。 (最新)

时间:2011-01-21 14:25:33

标签: wpf datagrid wpfdatagrid selecteditemchanged

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

每一行绑定到一个可视对象,我想将其显示为选中“

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

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

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

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

有没有办法从datagrid获取所选项目的MOST更新列表?在我选择新行后,是否有可以使用的事件?

谢谢和问候, 千电子伏

1 个答案:

答案 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
            }
        }