0

Xamarin フレームワークを使用して、WP、Android、iOS オペレーティング システムをサポートするアプリケーションを開発しています。

フィルターと検索の 2 つのタブを作成する必要があります。フィルター タブを使用すると、ドロップダウン、日付ピッカーからいくつかの値が選択され、検索タブのリスト グリッドが読み込まれます。しかし、MVVM CROSS (Portable Library Class) でタブ コントロールを作成するためのサンプル アプリケーションが見つかりませんでした。

ViewModel クラス:

 public class SearchWOViewModel : MvxViewModel
{
    public readonly ISearchWOService _serachwo;
    public SearchWOViewModel()
    {
        Filter = new FilterViewModel(_serachwo);
        Search = new SearchViewModel(_serachwo);
    }

    private FilterViewModel _Filter;
    public FilterViewModel Filter {  get { return _Filter; } set { _Filter = value; RaisePropertyChanged(() => Filter);  }  }

    private SearchViewModel _Search;
    public SearchViewModel Search { get { return _Search; }  set { _Search = value; RaisePropertyChanged(() => Search); } }
}

public class FilterViewModel : MvxViewModel
{
   public FilterViewModel(ISearchWOService search)
   {
      _filterwo = search;
      SiteDropDown();
   }
    private string _SiteResult;
    public List<DropDownEquipment> SiteResult
    {  get { return _SiteResult; } set { _SiteResult = value;  } } 

    public void SiteDropDown()
    {
       String query = "UserSite";
      _filterwo.FillUserSite(query, result => SiteResult = result, error => { });
    }
}

public class SearchViewModel : MvxViewModel
{
    //How to call the service and load the listing grid while loading the page
    private readonly ISearchWOService _serachwo;
    public SearchViewModel(ISearchWOService search)
    {
        _serachwo = search;
        SearchListingWO();
    }

    private List<ListingWo> _results;
    public List<ListingWo> Results { get { return _results; }  set {   _results = value;  RaisePropertyChanged(() => Results);   } }

    public void SearchListingWO() // Want to reload this function once site dropdown changes
    {
        String query = "x/x/INDIA/SA/WORKORDER"; 
        _serachwo.Listingwo(query, result => Results = result,error => { });
    }
}
4

1 に答える 1

1

Stuart Lodge の N+1 日間の MVVMCross Linkをご覧ください。

N=25 - タブ (MvvmCross の N+1 日)

編集:いくつかの簡単な考え。メッセージ (N=9 ビデオ) を使用して、選択したフィルター オプションを [フィルター] タブから [検索] タブに渡します。「検索タブ」がメッセージを受信したら、それに応じてバインド コレクションを更新 (フィルター処理) します。

edit2:「私の問題は、MVXViewModel コア プロジェクトでタブ変更イベントを発生させる方法です」 iOS: SelectedViewController = ViewControllers[tabIndex];
Android: tabactivity によって開始されたアクティビティから tabactivity のタブを変更する方法は? または現在のタブを変更 しますこれらすべてをVIEWコードで実行するか、プロパティをビューモデルにバインドします。

于 2013-09-06T21:08:47.950 に答える