我遇到一个奇怪的问题,当我将内容页面设置为启动页面时,Xamarin Forms App工作正常。如果我将TabbedPage设置为启动,并将相同的ContentPage设置为TabbedPage的子项,则它不会显示/ data-bind ContentPage。没有错误。我有什么想法?这是我的TabbedPage视图模型。
using MvvmCross.Core.ViewModels;
using System.Windows.Input;
namespace Company.Mobile.ViewModels
{
public class TabbedMainViewModel
: MvxViewModel
{
}
}
XAML:
<?xml version="1.0" encoding="utf-8" ?>
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:forms="using:Xamarin.Forms"
xmlns:local="clr-namespace:company.Mobile.Pages;assembly=company.Mobile"
x:Class="company.Mobile.Pages.TabbedMainPage"
Title="Title">
<TabbedPage.Children>
<local:HomePage/>
<local:MainPage/>
<local:ResourcesPage/>
<local:ContactPage/>
</TabbedPage.Children>
</TabbedPage>
答案 0 :(得分:1)
经过大量的试验和错误以及社区的帮助,这是有效的。
将BindingContext设置为ContentPage代码隐藏C#,如下所示:
public partial class HomePage : ContentPage
{
public HomePage()
{
InitializeComponent();
var svc = Mvx.Resolve<IMobileService>();
BindingContext = new HomeViewModel(svc);
}
}
在HomeViewModel构造函数中获取您的数据,如下所示:
public class HomeViewModel : MvxViewModel
{
private readonly IMobileService service;
public HomeViewModel(IMobileService service)
{
this.service = service;
//Content = service.GetContent; //Get your data
}
}
答案 1 :(得分:0)
我想说,您可以通过为XAML中每个选项卡式页面添加此内联属性来简化此操作,例如主页应为BindingContext="{Binding HomePageViewModel}"