[英]Binding AutocompleteBox in WP7 Application from an ObservableCollection<>, created by a Local Database
我使用來自本地數據庫DB .sdf的查詢LinQ創建了一個ObservableCollection <>,然后將我的ObservableCollection <>綁定了autocompleteBox(Silverlight Toolkit,2011年8月),但這加載元素非常慢。
<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#將文本變為可見或焦點時直接將其填充到屏幕上。
例如,我必須搜索包含8個以上具有9個不同屬性的實體的龐大數據庫。 當我進行搜索時,我只是根據與匹配搜索參數的實體相關聯的主鍵的數量加載列表。 該列表通常在幾毫秒內加載,並且時間長短僅基於搜索Emlemet數量而不是加載其內容的時間。 然后,當按下搜索鍵時,搜索方法將加載一個用於填充前三個元素的方法。 當用戶滾動搜索結果時,與基於一次查找的方法(而不是一次全部)相對,用戶快速滾動查找每個項目的文本和說明。 您可以想象一個大的搜索結果-可能需要花很多時間才能解決。 如果您不想“即時”加載,也可以在搜索內容全部加載時輸入一個簡單的加載動畫,這在從數據庫中存儲的文本加載本地圖像或嘗試加載在線數據時也是一種非常有用的方法/ images來自數據庫中的字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.