0

我在 MonoTouch.Dialog 中启用了搜索。每次击键后,我都会调用数据库,获取更新的列表,然后重新创建 Root。尽管在我重新生成 Root 之后,tableview 始终是空的,即使我可以确认我每次都在添加元素。

在每次用户在搜索栏中键入时都需要重新创建整个列表的情况下,我是否需要每次都重新创建根目录,或者清除它并重新填充它?

我已经尝试了这两种方法,但是在我尝试重新生成它之后,tableview 永远不会呈现任何东西。

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