我有两个DataGrids 并且我有同步滚动(在一个网格上滚动会导致其他网格滚动)。其中一个网格的 a DataGridTemplateColumnwithDataTemplate设置为 a Image:
<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属性绑定操作会导致每次滚动时出现缓慢,因为如果我将绑定设置为 a StaticResource,那么滚动就会变得平滑。有没有办法来解决这个问题?
更新
问题是由于对Image源的绑定错误。绑定到Image源的属性的值是一个空字符串:
var d2 = (from l in t.Item2
select new ProgramLine { Blank = String.Emtpty, Line = l}).ToList();
dataGrid2.ItemsSource = d2;
这导致默认转换器失败,从而导致滚动变得迟缓,因为每次滚动发生时都会调用属性 getter。
经验教训 就像 Steven 所说,确保没有装订错误
提示 在调试模式下运行 WPF 应用程序时使用即时窗口