C# 从本地数据库创建的ObservableCollection在WP7应用程序中绑定AutocompleteBox

C# 从本地数据库创建的ObservableCollection在WP7应用程序中绑定AutocompleteBox,c#,silverlight-toolkit,windows-phone-7.1,autocompletebox,C#,Silverlight Toolkit,Windows Phone 7.1,Autocompletebox,我使用本地数据库DB.sdf中的查询LinQ创建了一个ObservaleCollection,然后在2011年8月将autocompleteBox Silverlight Toolkit与ObservaleCollection绑定在一起,但加载元素的速度非常慢 <toolkit:AutoCompleteBox ItemsSource="{Binding DSTAITEMS}" ValueMemberBinding="{Binding DESSTA}" HorizontalAlignmen

我使用本地数据库DB.sdf中的查询LinQ创建了一个ObservaleCollection,然后在2011年8月将autocompleteBox Silverlight Toolkit与ObservaleCollection绑定在一起,但加载元素的速度非常慢

<toolkit:AutoCompleteBox ItemsSource="{Binding DSTAITEMS}" ValueMemberBinding="{Binding DESSTA}"  HorizontalAlignment="Left" Margin="69,67,0,0" Name="autoCompleteBoxPartenza" VerticalAlignment="Top"  Text="Stazione di partenza" Foreground="Gray"  Width="295" MouseEnter="autoCompleteBoxPartenza_MouseEnter">
            <toolkit:AutoCompleteBox.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding DESSTA}"></TextBlock>
                </DataTemplate>
            </toolkit:AutoCompleteBox.ItemTemplate>
        </toolkit:AutoCompleteBox>
我的代码cs中的ObservableCollection:

 var elements= from r in myDB.stazioni select r;
        DSTAITEMS = new ObservableCollection<DSTA>(elements);

我发现,对于大型数据库,通过ItemsSource自动填充可能会有一些滞后

您要研究的另一种方法是首先创建列表,方法是基于一个小主键进行填充,并在文本变为可见或焦点时使用C将其直接填充到屏幕上


例如,我必须搜索一个包含超过80000个实体、超过9个不同属性的大型数据库。当我进行搜索时,我只需根据与匹配搜索参数的实体相关联的主键数加载列表。列表通常在毫秒内加载,时间长度完全基于搜索emlemet数量的时间,而不是加载其内容的时间。然后,当按下search时,search方法加载一个方法来填充前三个元素。当用户在搜索结果中滚动时,每个项目的文本和描述会随着用户基于查找器方法滚动而快速填充,而不是一次全部填充。正如你可以想象的那样,一个巨大的搜索结果——否则要花很长时间才能解决。如果您不想动态加载,也可以在搜索内容加载所有内容的同时输入一个简单的加载动画。当从数据库中存储的文本加载本地图像或试图从数据库中的字符串加载在线数据/图像时,这也是一种非常有用的方法。

您可能需要检查以下内容: