2012-03-08 135 views
2

我有以下代碼示例以演示使用MessageElement單元格的簡單MonoTouch.Dialog表格。我遇到的問題是當我在DialogViewController中啓用自動搜索功能時。每當進行搜索時,它總是隻顯示一張空白表。MonoTouch.Dialog搜索過濾器無法正常工作MessageElement單元格

如果我用StingElements單元替換MessageElement單元格,則搜索完全正常。

是否需要額外的代碼才能正確搜索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..."; 
     } 
    } 
} 

回答

4

MonoTouch.Dialog的源代碼在github上可用。從它你可以看到如何DialogViewControllerdoes it's search(它在Element上調用Matches方法)以及如何調整它以滿足自己的喜好。

你的情況,它發生在MessageElement類型不重寫Matches所以回退到默認,從Element其使用Captiondo to it's searching

快速修復它從MessageElement繼承自己的元素,例如, MyMessageElement,並覆蓋Matches以隨心所欲地工作。