【问题标题】:Tab Control in MVVM CROSSMVVM CROSS 中的选项卡控件
【发布时间】:2016-06-09 02:01:04
【问题描述】:

我们正在使用 Xamarin 框架开发支持 WP、Android 和 iOS 操作系统的应用程序。

需要创建两个选项卡过滤器和搜索,使用过滤器选项卡将从下拉列表中选择一些值,日期选择器并加载搜索选项卡的列表网格。但是我找不到在 MVVM CROSS(便携式库类)中创建选项卡控件的示例应用程序。

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 => { });
    }
}

【问题讨论】:

  • 您好,请建议如何通过单击另一个选项卡重新加载选项卡内容详细信息。

标签: xamarin mvvmcross portable-class-library


【解决方案1】:

看看 Stuart Lodge 的 N+1 天 MVVMCross Link Here

N=25 - 选项卡(MvvmCross 的 N+1 天)

编辑: 一些快速的想法。使用消息(N=9 视频)将选定的过滤器选项从“过滤器选项卡”传递到“搜索选项卡”。当“搜索选项卡”收到消息时,相应地更新(过滤)绑定集合。

编辑2: “我的问题是如何在 MVXViewModel 核心项目中触发选项卡更改事件” iOS:SelectedViewController = ViewControllers[tabIndex];
安卓:how to change tab of a tabactivity from an activity started by the tabactivity ? or change current tab 在 VIEW 代码中执行所有这些操作或将属性绑定到视图模型。

【讨论】:

  • 谢谢安东尼吴。我已经尝试了示例 Tab 应用程序并且运行良好。但是如何将选项卡内容从一个选项卡选择重新加载到另一个选项卡。例如:我们想通过“过滤选项卡”下拉选择重新加载“搜索选项卡”网格内容。
  • 改为添加到答案中。
  • 请检查更新的问题。它在使用带有接口的 json 函数调用的选项卡控件之一中初始化构造函数时显示未处理的异常。请提出建议。
  • 谢谢安东尼吴。问题出在构造函数上,并且已解决。我已经通过上述链接重新加载选项卡,但我仍然无法重新加载。请建议。对不起,如果我的问题很冷淡。
猜你喜欢
  • 2013-11-20
  • 1970-01-01
  • 1970-01-01
  • 2013-11-15
  • 2011-04-27
  • 1970-01-01
  • 2011-12-31
  • 2011-01-18
  • 2019-12-25
相关资源
最近更新 更多