MonoTouch.Dialog:每次击键搜索,查询数据库

时间:2012-07-02 04:57:47

标签: c# xamarin.ios monotouch.dialog

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

如果每次用户在搜索栏中输入时都需要重新创建整个列表,我是否需要每次都重新创建Root,或者清除它并重新填充它?

我尝试了两种方法,但在我尝试重新生成它之后,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);
    }

1 个答案:

答案 0 :(得分:1)

进行任何更改后,您需要调用ReloadData:

void CreateRoot ()
{
    ...
    this.Root.ReloadData ();
}