2012-03-08 7 views
2

MessageElementセルを使用して簡単なMonoTouch.Dialogテーブルをデモンストレーションする次のコード例があります。私が抱えている問題は、DialogViewControllerの自動検索機能を有効にしたときです。検索を行うたびに、常に空白の表が表示されます。MonoTouch.Dialog検索フィルターがMessageElementセルに対して正しく機能していない

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..."; 
     } 
    } 
} 

答えて

4

MonoTouch.Dialogのソースコードはgithubで入手できます。それから、DialogViewControllerdoes it's searchMatchesメソッドをElementと呼びます)と、好みに合わせて調整する方法を確認できます。

あなたのケースでは、それはCaptiondo to it's searchingを使用Elementから、デフォルトにフォールバックMessageElementタイプはMatchesをオーバーライドしていないことが起こります。

MessageElementから自分の要素を継承するクイックフィックスです。 MyMessageElementを入力し、好きなように動作させるにはMatchesを上書きします。

関連する問題