データグリッドを含む wpf フォームがあります。データグリッドの列の 1 つはコンボボックス型です。コンボ ボックスの ItemsSource プロパティには、何千もの項目があります。したがって、コンボボックスの横の矢印(レンダリングの問題だと思います)をクリックすると、値を表示するのにかなりの時間がかかります。コンボボックスにアイテムをより速く、実質的に遅延なく表示させるにはどうすればよいでしょうか?
質問する
777 次
1 に答える
6
これをコンボボックスに入れてみてください。すべてのアイテムを一度にロードするのではなく、表示するときにロードする必要があります。
データグリッド内では、コンボボックス列に常に DataGridTemplateColumn を使用します。
<DataGridTemplateColumn Header="My Combo Column">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Margin="0" ItemsSource="{Binding Path=DataContext.MyCollection, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}"
SelectedItem="{Binding Path=Item.Property, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" >
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Width=250 VirtualizingStackPanel.VirtualizationMode="Recycling" CanHorizontallyScroll="True"/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
于 2013-01-03T16:59:11.050 に答える