0

MonoTouch.Dialogで検索を有効にしました。キーを押すたびにデータベースを呼び出し、更新されたリストを取得してから、ルートを再作成します。ルートを再生成した後は、毎回要素を追加していることを確認できますが、テーブルビューは常に空です。

ユーザーが検索バーに入力するたびにリスト全体を再作成する必要がある状況では、毎回ルートを再作成する必要がありますか、それともクリアして再入力する必要がありますか?

私は両方の方法を試しましたが、テーブルビューを再生成しようとすると、テーブルビューは何もレンダリングしません。

    this.SearchTextChanged += (sender, args) => {
             query = args.Text;
            CreateRoot();
        };

    void CreateRoot()
    {
        if(this.Root!=null)
           this.Root.Clear();

        Section section = new Section();
        List<TermItem> terms = LegalDatabase.GetTerms(query, SearchScope);

        foreach (TermItem term in terms)
        {
            var eTerm = new TermElement(term.ID);
            section.Add(eTerm);
        }
        terms = null;
        this.Root.Add(section);
    }
4

1 に答える 1

1

変更を加えた後、ReloadDataを呼び出す必要があります。

void CreateRoot ()
{
    ...
    this.Root.ReloadData ();
}
于 2012-07-02T10:42:54.503 に答える