Диспетчер поперечной нити - PullRequest
0 голосов
/ 06 июля 2010

У меня есть WPF Grid и список значений. Список значений имеет свойство строки и столбца и значение содержимого. В отформатированной сетке должно отображаться от 200 до 14 000 значений.

Я добавил строки и столбцы в сетку, затем добавил текстовые блоки в сетку в правильных положениях строк / столбцов.

Это прекрасно работает, пока у меня не будет около 8000 значений, затем оно замедляется. Чтобы исправить это, я поместил его в поток для выполнения макета, проблема в том, что мои TextBlocks создаются в одном потоке, а затем, когда я пытаюсь добавить их в элемент Children таблицы, используя диспетчер пользовательского интерфейса, текстовый блок находится в другом потоке .

Итак, вопрос в том, могу ли я переключить привязку потоков текстовых блоков к потоку пользовательского интерфейса после того, как я их создал?

Спасибо Оуэн

1 Ответ

1 голос
/ 06 июля 2010

Собираетесь ли вы показать все 8000 значений одновременно или у вас есть несколько полос прокрутки?

Добавление 8000 элементов управления в представление будет считаться плохим дизайном.

Почему бы вам не использовать ListView и не шаблонировать его в соответствии с вашим дизайном, если значения имеют один и тот же шаблон?Так что вы можете связать его с коллекцией ObservableCollection, которую можно заполнить с помощью имеющегося у вас списка значений.Заполнение может быть выполнено асинхронно, используя Disgincher's BeginInvoke метод

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...