У меня есть два DataGrid
s, и у меня есть синхронная прокрутка на месте (прокрутка по одной сетке вызывает прокрутку других). Одна из решеток имеет DataGridTemplateColumn
с DataTemplate
установлен в Image
:WPF: Синхронная прокрутка становится вялой для двух DataGrids, одна из которых имеет столбец изображения со связыванием
<DataGridTemplateColumn Width="16">
<DataGridTemplateColumn.CellStyle>
<Style TargetType="DataGridCell">
<EventSetter Event="PreviewMouseLeftButtonDown" Handler="CommentIcon_Clicked" />
</Style>
</DataGridTemplateColumn.CellStyle>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Source="{Binding Blank, Mode=TwoWay}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
После данных связан с сетками, прокрутка становится очень вялым и медленным. Поэтому я подозреваю его операцию привязки свойства Source
, которая вызывает медлительность каждый раз, когда прокрутка происходит, потому что если я установил привязку к StaticResource
, тогда прокрутка станет гладкой. Есть ли способ исправить это?
Обновление Проблема связана с ошибками привязки к источнику Image
. Значение свойства, которое связывается с Image
источником является пустая строка:
var d2 = (from l in t.Item2
select new ProgramLine { Blank = String.Emtpty, Line = l}).ToList();
dataGrid2.ItemsSource = d2;
Это вызывает преобразователь по умолчанию на неудачу, и, следовательно, привести к скроллинг, чтобы стать вялой из-за свойств геттера получение называется каждый раз, когда происходит прокрутка ,
Урок Как Стивен говорит, убедитесь, что нет никаких обязательных ошибок
Совет Используйте открывшееся окно при запуске приложения WPF в режиме отладки
Вы пробовали настройку виртуализации на ваши DataGrids? –
Также [Загрузка изображения на фоне] (http://stackoverflow.com/q/16035300/1456174) может вам помочь. –