从本地数据库创建的ObservableCollection<>绑定WP7应用程序中的AutocompleteBox

本文关键字:绑定 WP7 应用程序 AutocompleteBox ObservableCollection 数据库 创建 | 更新日期: 2023-09-27 18:12:13

我使用本地数据库DB .sdf的查询LinQ创建了一个ObservableCollection<>,然后我将autocompleteBox (Silverlight Toolkit 2011年8月)与我的ObservableCollection<>绑定,但这是非常缓慢的加载我的元素。

<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>

我的代码中的ObservableCollection<> cs:

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

从本地数据库创建的ObservableCollection<>绑定WP7应用程序中的AutocompleteBox

我发现通过ItemsSource自动填充对于大型数据库来说可能会有一些延迟。

你想研究的另一种方法是首先通过基于一个小的主键填充来创建列表,然后使用c#将文本直接填充到屏幕上,因为它变得可见或焦点。

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