MonoTouch.Dialog搜索过滤器对MessageElement单元格无法正常工作

时间:2012-03-08 01:17:03

标签: c# ios xamarin.ios uisearchbar monotouch.dialog

我有以下代码示例来演示使用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...";
        }
    }
}

1 个答案:

答案 0 :(得分:4)

可以在github上找到MonoTouch.Dialog的源代码。通过它,您可以看到DialogViewController does it's search(它调用Matches上的Element方法)以及如何根据自己的喜好进行调整。

在您的情况下,MessageElement类型不会覆盖Matches,因此它会从使用Element {{3} Caption的{​​{1}}回退到默认值}。

快速修复它从MessageElement继承您自己的元素,例如MyMessageElement,并覆盖Matches以便按您的方式工作。