Связывание AutocompleteBox в приложении WP7 из коллекции ObservableCollection <>, созданной локальной базой данных - PullRequest
1 голос
/ 25 октября 2011

Я создаю ObservableCollection <>, используя запрос LinQ из локальной базы данных .sdf, затем я связал autocompleteBox (Silverlight Toolkit August 2011) с моим 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);

1 Ответ

0 голосов
/ 12 декабря 2011

Я обнаружил, что автоматическое заполнение через ItemsSource может иметь некоторые задержки для больших БД.

другой метод, который вы хотите изучить, - это сначала создать список, заполнив его на основе небольшого первичного ключа и используя C # для непосредственного заполнения текста на экране, когда он станет видимым или фокусным.

Например, мне приходится искать в огромной базе данных более 80 000 объектов с более чем 9 различными свойствами. когда я делаю поиск, я просто загружаю список на основе количества первичных ключей, связанных с объектами, которые соответствуют параметрам поиска. список обычно загружается в течение миллисекунд, а промежуток времени основан исключительно на времени поиска количества эмлеметов, а не на загрузке их контента. Затем при нажатии поиска метод поиска загружает метод для заполнения первых трех элементов. По мере того, как пользователи прокручивают результаты поиска, текст и описание каждого элемента быстро заполняются, поскольку пользователь прокручивает их на основе метода поиска, в отличие от всех сразу. Как вы можете представить большой результат поиска - понадобится кровавый возраст, чтобы решить иначе. Вы также можете ввести простую анимацию загрузки, когда содержимое поиска загружает ВСЕ, если вы не хотите загружать «на лету». Это также очень полезный подход при загрузке локальных изображений из текста, хранящегося в БД, или при попытке загрузить онлайн-данные. / образы из строки в БД.

...