Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
26 / 26 / 0
Регистрация: 10.03.2010
Сообщений: 248
WPF

Виртуализация DataGrid

29.11.2023, 11:11. Показов 1288. Ответов 20

Студворк — интернет-сервис помощи студентам
Есть БД (взаимодействую с ней через Microsoft.EntityFrameworkCore), при выводе в DataGrid имею тормоза UI. Такое ощущение что не работает виртуализация и DataGrid все айтемы держит в памяти. Есть ли более правельный способ отображения данных?

XML
1
2
3
4
5
6
7
<DataGrid x:Name="dgRefill" VirtualizingPanel.IsVirtualizing="True" VirtualizingPanel.IsVirtualizingWhenGrouping="True" VirtualizingPanel.VirtualizationMode="Recycling" ScrollViewer.IsDeferredScrollingEnabled="True">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Date" Binding="{Binding Path=Date}"/>
        <DataGridTextColumn Header="Toner" Binding="{Binding Path=TonerName}"/>
        <DataGridTextColumn Header="Number" Binding="{Binding Path=Number}"/>
    </DataGrid.Columns>
</DataGrid>
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 private void Window_Loaded(object sender, RoutedEventArgs e)
 {
      var refills = _db.Refills.Select(p => new
     {
         Departament = p.Departament,
         Cartridge = p.Cartridge,
         Number = p.Number,
         Toner = p.Toner,
         Date = p.Date
     });
     foreach (var item in refills) 
     {
         dgRefill.Items.Add(new RefillView { TonerName = item.Toner.Name, Number = item.Number, Date = DateTime.FromBinary(item.Date).ToShortDateString()});
     }
 }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.11.2023, 11:11
Ответы с готовыми решениями:

DataGrid: установить фокус на строку DataGrid, а не на сам DataGrid
Добрый день! Есть следующий код: public partial class MainWindow : Window { DataTable dt = new DataTable(); ...

Виртуализация ListView
Добрый день. Имеется ListView с довольно сложным шаблоном Item'а и включенной виртуализацией. Когда беремся мышкой за полосу прокрутки и...

Как зеркально отобразить dataGrid одного окна в dataGrid в другом окне?
Здравствуйте. Столкнулся с проблемой. Не знаю, как отобразить зеркально dataGrid одного окна, в dataGrid другого окна? Возможно ли...

20
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16164 / 11284 / 2891
Регистрация: 21.04.2018
Сообщений: 33,170
Записей в блоге: 2
04.12.2023, 22:15
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от eXtream Посмотреть сообщение
<StackPanel> был заменён на <DockPanel>
Ну, кабы мы видели.....
StackPanel тоже склонен предоставлять бесконечное пространство дочерним элементам в направлении своей ориентации. Даже если сам StackPanel будет ограничен по размеру в этом направлении.
Сами дочерние при этом стремятся сжаться до минимального размера.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.12.2023, 22:15

DataGrid+ObjectDataProvider+DataTable после изменения источника обновить DataGrid
Окно с DataGrid 1. В ресурсах окна объявлен Instance датапровайдера с методом, возвращающим DefaultView для таблицы...

Удалить выбранную строку в DataGrid, если DataGrid содержит коллекцию
Здравствуйте! Скажите пожалуйсто, как удалить выбраную строку в DataGrid, если DataGrid содержит коллекцию. пример выражения: //Метод ...

Как сразу после первого нажатия по ячейке в DataGrid, получить DataGrid.SelectedItem?
Ситуация такая: у меня есть датагрид и текстобксы (см. скрин ниже) и по нажатию берётся тот самый DataGrid.SelectedItem из класса бд и...

Как применить стиль строки dataGrid к определенному dataGrid
Доброго всем времени суток! Спасибо, что уделили мне свое время! Есть стиль для строк датагрида: &lt;Window.Resources&gt; ...

Виртуализация с пиксельным скроллом
Доброго времени суток! В моем ListView есть элементы, высота которых может быть довольно большой, соотвественно при логическом скролле...


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

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru