我在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);
}
答案 0 :(得分:1)
进行任何更改后,您需要调用ReloadData:
void CreateRoot ()
{
...
this.Root.ReloadData ();
}