Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
312 / 143 / 77
Регистрация: 23.08.2015
Сообщений: 455
WPF

События окончания сортировки в DataGrid

26.05.2021, 14:56. Показов 1380. Ответов 1

Студворк — интернет-сервис помощи студентам
Добрый день форумчане!
Есть DataGrid, в DataGrid при нажатии на заголовок столбца осуществляется сортировка содержимого таблицы по умолчанию. По окончании сортировки мне необходимо отображать последнюю выбранную строку в таблице. Не найдя в Интернете ничего умнее сделал так: на событие Sorting запускаю таймер и после задержки таймера уже ищу свою строку в таблице и выделяю её.
Вопрос такой. Каким образом можно подписаться на событие окончания сортировки или, если такой вариант невозможен, сделать так, чтобы сразу после окончания сортировки происходил поиск и выделение нужной строки без задержки?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.05.2021, 14:56
Ответы с готовыми решениями:

Таймер до окончания/начала события
Нужна помощь в понимании задания, буду благодарна, если кто-то сможет помочь. Преподаватель дал задание по JS: "1. Запрос...

Дождаться окончания UI события из другого потока
Есть такой код: namespace Lab_6 { public partial class Form1 : Form { public int High = 1; public...

Заставить ждать основной поток окончания события от таймера
private void MainForm_Load(object sender, EventArgs e) { System.Timers.Timer timer = new System.Timers.Timer(); ...

1
 Аватар для Andrey-MSK
3339 / 2226 / 387
Регистрация: 14.08.2018
Сообщений: 7,517
Записей в блоге: 4
26.05.2021, 15:05
Tatarin78, как вариант
присоединенное свойство DataGrid (Behavior) - позволяет проматывать DataGrid туда куда надо
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
using System;
using System.Windows.Controls;
 
using Microsoft.Xaml.Behaviors;
 
namespace WpfApp1
{
    public class ScrollIntoViewBehavior : Behavior<DataGrid>
    {
        protected override void OnAttached()
        {
            base.OnAttached();
            this.AssociatedObject.SelectionChanged +=
                new SelectionChangedEventHandler(AssociatedObjectSelectionChanged);
        }
        protected override void OnDetaching()
        {            
            this.AssociatedObject.SelectionChanged -=
                new SelectionChangedEventHandler(AssociatedObjectSelectionChanged);
            base.OnDetaching();
        }
 
        private void AssociatedObjectSelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (sender is DataGrid)
            {
                DataGrid grid = (sender as DataGrid);
 
                if (grid.SelectedItem != null)
                {
                    Action action = delegate ()
                    {
                        grid.UpdateLayout();
                        grid.ScrollIntoView(grid.SelectedItem, null);
                    };
 
                    grid.Dispatcher.BeginInvoke(action);
                }
            }
        }
    }
}
XAML для DataGrid добавить
XML
1
2
3
                    <i:Interaction.Behaviors>
                        <local:ScrollIntoViewBehavior/>
                    </i:Interaction.Behaviors>
подключить в проекте Nuget - Microsoft.Xaml.Behaviors
в XAML окна добавить namespace
XML
1
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
и во VewModel в коллекции, которая подключена к DataGrid переходить на нужный элемент когда нужно
например у меня, переходит на только что добавленную позицию
C#
1
2
3
4
                        DrawSys newList = new DrawSys();
                        newList = DrawSysDA.InsertPosition(CurrentDraw.IDDraw, ListNumber, ListName);
                        DrawSysCollection.Add(newList);
                        CurrentDrawSys = DrawSysCollection.FirstOrDefault(i => i.IDDrawSys == newList.IDDrawSys);
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.05.2021, 15:05
Помогаю со студенческими работами здесь

Отмена сортировки Datagrid
Доброго времени суток. На форме имеется Datagridview и загруженная в него таблица. На навигаторе я создала кнопку &quot;сортировка по...

Обрабатывать события нажатия на строку DataGrid
Неужели нельзя улавливать события нажатия на строку DataGrid как это делалось в приложениях для Windows? Может что-то есть какая либо...

Вопрос: события при изменениях в DataGrid
Подскажите начинающему: 1) какие события объекта DataGrid происходят при внесении изменений в ячейку DataGrid ? 2) как, имея номер...

Слушатель события check/uncheck CheckBox в DataGrid
Привет, форумчанам! Нужна ваша помощь. Пишу программу, придерживаясь MVVM. Есть DataGrid, привязанный к коллекции компонентов: ...

Сохранение Background строки в DataGrid после сортировки
Дано: - ColorPicker для выбора цвета фона выделенных пользователем строк; - DataGrid, привязанный к DataTable. Задача: Сделать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru