我有一个 Windows 8 XAML 页面, 里面有一个网格, 以 100+ 不同字体显示样本文本。 样本文本在每个网格视图项中都是相同的, 可以使用页面顶部的文本框更改 。
每次键入一个字符时,所有网格视图项目都会更新。问题在于这明显缓慢,特别是如果您快速键入的话。
我不确定是什么使它如此缓慢。 它是否更新了所有网格视图项目,包括没有在屏幕上的项目? 是不是造成问题的其他原因,而这种特别的约束只是一种红种?
以下是我具有约束力的代码(我从数据模板中删除了一些Xaml,
<ScrollViewer>
<GridView x:Name="FontGridView" ItemsSource="{Binding Fonts}" SelectionMode="Multiple" Margin="116,0,40,46">
<GridView.ItemTemplate>
<DataTemplate>
<Grid Width="600" MinHeight="100" MaxHeight="120">
<TextBox Text="{Binding ElementName=pageRoot, Path=DataContext.SampleText, Mode=OneWay}"
FontFamily="{Binding FamilyName}" FontSize="32" Background="Transparent" />
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
</ScrollViewer>
是否有更好的方法做到这一点, 或者还有任何其他的 调整性能的东西 我可以打开?
UPDATE: 自2012 Vision Studio RC 推出以来, 你不太可能犯这个错误。 WinRT 应用程序的模板不再以这种方式使用 ScrollViewer 。 我将问题保留在这里, 给那些他们用 2011 Vision Studio 创建了应用程序的人。