我在 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);
}