1

ローカル データベース 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>

私のコード cs の ObservableCollection<>:

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

1 に答える 1

0

大規模なDBの場合、ItemsSourceを介した自動入力には多少の遅れが生じる可能性があることがわかりました。

調べたいもう1つの方法は、最初に小さな主キーに基づいてデータを入力し、C#を使用してテキストが表示されたとき、または焦点が表示されたときにテキストを画面に直接入力して、リストを作成することです。

たとえば、9つ以上の異なるプロパティを持つ80,000を超えるエンティティの大規模なデータベースを検索する必要があります。検索を行うときは、検索パラメーターに一致するエンティティに関連付けられている主キーの数に基づいてリストをロードするだけです。リストは通常​​ミリ秒以内にロードされ、時間の長さは、コンテンツをロードするのではなく、エンレメットの数を検索する時間のみに基づいています。次に、検索が押されると、検索メソッドは最初の3つの要素を設定するメソッドをロードします。ユーザーが検索結果をスクロールすると、ユーザーが一度にではなく、ファインダー方式に基づいてスクロールすると、各アイテムのテキストと説明がすばやく入力されます。あなたが想像できるように、大きな検索結果は-そうでなければ解決するのに血なまぐさい年齢を要するでしょう。

于 2011-12-12T18:53:19.163 に答える