Как получить ВСЕ DataGrid выбранный элемент. (САМОЕ современное) - PullRequest
0 голосов
/ 21 января 2011

В настоящее время я пытаюсь получить набор выбранных строк сетки данных, выбранных пользователем (выбор нескольких строк включен).

Каждая строка привязана к визуальному объекту, который я хочу показать как выбранный "

Итак, для сетки данных я добавил этот стиль:

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

Поэтому, когда пользователь выбирает строку, я получаю событие.

Однако при выборе строки и в событии. Выбранный элемент еще не был обновлен, и он по-прежнему показывает то, что я предварительно выбрал. DataGrid.CurrentItem показывает строку, которую я только что щелкнул и собирался выбрать, но, поскольку она выделена несколькими элементами, я хочу иметь возможность выбрать ВСЕ строки, выделенные ТОКОМ, и выделить мой визуальный объект "1010 *

Есть ли способ получить МОСТ обновленный список выбранного элемента из сетки данных? Могу ли я использовать событие, которое запускается ПОСЛЕ того, как я выбрал новую строку?

Спасибо и С уважением, Кев

1 Ответ

2 голосов
/ 21 января 2011

Вы хотите использовать событие 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
            }
        }
...