Фильтр MonoTouch.Dialog не работает для ячеек MessageElement - PullRequest
1 голос
/ 08 марта 2012

У меня есть следующий пример кода для демонстрации простой таблицы MonoTouch.Dialog с использованием ячеек MessageElement. У меня возникает проблема, когда я включаю функцию автоматического поиска в 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 Ответ

4 голосов
/ 08 марта 2012

Исходный код для MonoTouch.Dialog доступен на github. Из него вы можете увидеть, как DialogViewController выполняет поиск (он вызывает методы Matches для Element) и как вы можете настроить его по своему вкусу.

В вашем случае случается, что тип MessageElement не переопределяет Matches, поэтому он возвращается к значению по умолчанию, начиная с Element, который использует Caption для поиска .

Быстро исправить это, чтобы наследовать свой собственный элемент от MessageElement, например MyMessageElement и переопределите Matches для работы по своему усмотрению.

...