2011-07-07 8 views
2

コンボボックスをカスタムオブジェクトリストにバインドしようとしています。私のオブジェクトリストには約15Kのレコードがあり、コンボボックスはコンボボックスをクリックしてデータを表示するのに時間がかかります。以下はバインドコンボボックスとWPFの膨大なデータ

はコードです:背後

<ComboBox Height="23" Name="comboBox1" Width="120" DisplayMemberPath="EmpName" SelectedValue="EmpID" VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Recycling"/> 

コード:

List<EmployeeBE> allEmployee = new List<EmployeeBE>(); 
allEmployee = EmployeeBO.GetEmployeeAll(); 
comboBox1.ItemsSource = allEmployee; 

allEmployee周り15Kのレコードを持っています。 コンボボックスのパフォーマンスを改善するにはどうすればよいですか?

+1

コンボボックスを使用しないことを検討してください。15kレコードのコンボボックスは、ナビゲートするのがかなり残酷です! – Arcturus

答えて

4

これはUIデザインが悪いことです。ユーザーは15K個のレコードを読み取ることはできません。

ユーザーは、結果を表示する前に、たとえばComboBoxではなくAutoCompleteBoxを使用して、フィルタ条件を入力できるようにすることで、パフォーマンスを向上させることができます。ここで説明するように

+0

合意、 'AutoCompleteBox'、あるいはテキスト検索を有効にした適切な' ListBox'でも確かに解決策 – Damascus

0

ComboBoxの場合、VirtualizingStackPanelItemsPanelとしてみてください。

<ItemsPanelTemplate x:Key="ComboBoxItemsPanelTemplate"> 
    <VirtualizingStackPanel/> 
</ItemsPanelTemplate> 

<ComboBox ItemsPanel="{StaticResource ItemsTemplate}"/> 
関連する問題