我有以下代码示例来演示使用MessageElement
单元格的简单MonoTouch.Dialog表。我遇到的问题是当我在DialogViewController
中启用自动搜索功能时。每当进行搜索时,它总是只显示一个空白表。
如果我用MessageElement
单元格替换StingElements
单元格,则搜索效果非常好。
是否需要一些额外的代码才能正确搜索MessageElement
单元格?
非常感谢任何有关此问题的帮助。
using System;
using MonoTouch.UIKit;
using MonoTouch.Dialog;
using MonoTouch.Foundation;
namespace MessageElementSearch
{
public class MessageTable : DialogViewController
{
public MessageTable(RootElement root) : base(root)
{
Section sec = new Section();
root.Add(sec);
for (int i = 0; i < 10; i++)
{
MessageElement me = new MessageElement();
me.Sender = "Sender " + i.ToString();
me.Subject = "Subject " + i.ToString();
me.Body = "Body " + i.ToString();
me.Date = DateTime.Now;
sec.Add(me);
}
this.Style = UITableViewStyle.Plain;
this.EnableSearch = true;
this.SearchPlaceholder = "Filter Table...";
}
}
}
答案 0 :(得分:4)
可以在github上找到MonoTouch.Dialog的源代码。通过它,您可以看到DialogViewController
does it's search(它调用Matches
上的Element
方法)以及如何根据自己的喜好进行调整。
在您的情况下,MessageElement
类型不会覆盖Matches
,因此它会从使用Element
{{3} Caption
的{{1}}回退到默认值}。
快速修复它从MessageElement
继承您自己的元素,例如MyMessageElement
,并覆盖Matches
以便按您的方式工作。