|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.02.2016, 13:16 | #1 |
Пользователь
Регистрация: 14.05.2009
Сообщений: 44
|
Вылет при програмной прокрутке DataGrid WPF
Доброго времени суток! Помогите разобраться в непонятной ситуации
Есть DataGrid на форме Код:
Код:
Код:
Вроде бы все нормально но DataGrid не прокручивается при добавлении записей поэтому делаю так: Код:
вылетает еще раньше При этом выдает сообщение Код HTML:
Объект ItemsControl не соответствует своему источнику элементов. Дополнительные сведения см. во внутреннем исключении. Код HTML:
Информация для разработчиков (для чтения используйте средство визуализации текста): Данное исключение было создано потому, что генератор для элемента управления "System.Windows.Controls.DataGrid Items.Count:4104" с именем "Log" получил последовательность событий CollectionChanged, которая не согласуется с текущим состоянием коллекции Items. Обнаружены следующие отличия: Накопленное количество 4103 отличается от фактического количества 4104. [Накопленное количество вычисляется по формуле (число при последнем сбросе + кол-во добавлений - кол-во удалений после последнего сброса).] Один или несколько следующих источников могли создать неверные события: System.Windows.Controls.ItemContainerGenerator System.Windows.Controls.ItemCollection System.Windows.Data.ListCollectionView * Telemetria.MtObservableCollection`1[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] (Источники, которые считаются наиболее вероятной причиной проблемы, помечены звездочкой.) Наиболее распространенные причины: (а) изменение коллекции или ее свойства Count без создания соответствующего события и (б) создание события с неверным параметром индекса или элемента. В трассировке стека исключения описан процесс обнаружения несоответствий, а не процесс их возникновения. Для своевременного получения исключения задайте значение"High" для присоединенного свойства "PresentationTraceSources.TraceLevel" генератора и перезапустите сценарий. Один из способов решения этой задачи состоит в выполнении команды, аналогичной следующей: System.Diagnostics.PresentationTraceSources.SetTraceLevel(myItemsControl.ItemContainerGenerator, System.Diagnostics.PresentationTraceLevel.High) из окна интерпретации. Это приведет к запуску логики обнаружения после каждого события CollectionChanged, что замедлит работу приложения. System.Windows.Controls.DataGrid Items.Count: всякий раз разное Как прокрутка может влиять на обработку CollectionChanged??? Нашел место где возникает ошибка Код:
|
08.02.2016, 13:34 | #2 | |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
Цитата:
Попробуйте "dispatcher.BeginInvoke" заменить на "dispatcher.Invoke"
Благодарить в репутацию. Проклинать — туда же
|
|
08.02.2016, 14:17 | #3 | |
Пользователь
Регистрация: 14.05.2009
Сообщений: 44
|
Цитата:
Спасибо, сейчас попробую Никакого полложительного эффекта Последний раз редактировалось DennerV; 08.02.2016 в 14:28. |
|
08.02.2016, 15:48 | #4 |
Пользователь
Регистрация: 14.05.2009
Сообщений: 44
|
Вопрос решен
сделал через ObservableCollection<T> передал в поток дополнительно Dispatcher и через него вношу изменения в коллекцию |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
wpf двумерный массив и datagrid | D][mon | Помощь студентам | 0 | 20.03.2013 14:43 |
WPF DataGrid Binding | RomanA | WPF, UWP, WinRT, XAML | 0 | 28.02.2013 15:54 |
DataGrid WPF | Brodish | C# (си шарп) | 0 | 06.01.2013 15:42 |
Событие в DataGrid WPF | ViRTaCe | C# (си шарп) | 5 | 09.05.2012 09:34 |
ADO.Обход ошибок при програмной идентификации. | Zo0M | БД в Delphi | 11 | 01.08.2009 07:19 |