у сетки данных wpf есть виртуальный режим, такой как winforms DataGridView? - PullRequest
4 голосов
/ 08 августа 2011

winforms DataGridView имеет виртуальную модель и использует метод OnCellValueNeeded для получения значений ячеек из пользовательского хранилища данных.

Как мне это сделать в wpf?DataGrid, похоже, не имеет OnCellValueNeeded метода.

Спасибо

1 Ответ

4 голосов
/ 08 августа 2011

Не уверен, что это вам уже поможет:

DataGrid использует виртуализация пользовательского интерфейса , что означает, что объекты не создаются до того, как они будут видны на экране, и соответствующие свойства ваших исходных объектов не будут вызываться, пока они не видны. Это также означает, что элементы пользовательского интерфейса перерабатываются после того, как они больше не видны.
Это бесплатно, и вам не нужно делать дополнительное кодирование, чтобы использовать эту функцию. Если я правильно истолковываю ваш вопрос, главный вопрос в том, как узнать, что необходимо свойство бизнес-объекта. Для виртуализации пользовательского интерфейса это когда свойство вызывается в первый раз. Вы можете выполнить некоторую ленивую инициализацию. Но будьте осторожны, чтобы добавить слишком тяжелый код инициализации в свойства (синхронный поиск в БД и т. Д.), Иначе ваша DataGrid станет очень медленной и неуправляемой.

...