我有以下代码示例来演示使用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...";
}
}
}
最佳答案
可以在github上找到MonoTouch.Dialog的源代码。从中可以看到DialogViewController
does it's search(它在Matches
上调用Element
方法)的方式,以及如何根据自己的喜好对其进行调整。
在您的情况下,碰巧MessageElement
类型不会覆盖Matches
,因此会回退到默认值,即使用Element
do to it's searching的Caption
。
快速修复它可以从MessageElement
继承您自己的元素,例如MyMessageElement
,并覆盖Matches
以根据需要工作。
关于c# - MonoTouch.Dialog搜索过滤器不适用于MessageElement单元,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9611656/