xamarin 你能从一个标签页导航到一个默认构造函数被改变的内容页吗?

s71maibg  于 2023-04-03  发布在  其他
关注(0)|答案(1)|浏览(68)

我有一个选项卡式页面,我想导航到一个内容页面,它是采取用户输入和显示在绑定上下文中的xaml页面。
我遇到的问题是,如果我尝试使用以下命令解析数据库的对象:

public Personalize(User user)
{
    InitializeComponent();
    BindingContext = new PersonalizeViewModel(user);
}

我得到一个错误,“缺少默认构造函数”。
当我像下面这样添加第二个默认结构时,错误消失了,但没有从数据库的用户输入中提取数据:

public Personalize()
{
    InitializeComponent();
}
public Personalize(User user)
{
    InitializeComponent();
    BindingContext = new PersonalizeViewModel(user);
}

我的主页有登录/注册组件,并导航到TabbedPage。当我导航到Personalize页面时,它显示数据,但每当通过TabbedPage导航时,它都不显示数据库中的数据。

knpiaxh1

knpiaxh11#

答案就是@Jason上面提到的。就是在App对象上设置user属性。

App.Xaml

public static User LoggedInUser { get; set; }

ViewModel.PersonalizeViewModel

public PersonalizeViewModel()
{
    _user = App.LoggedInUser;
    Username = _user.username;
    Email = _user.email;
    Password = _user.password;
    Shopping = _user.Shopping;
    Milk = _user.Milk;
    Loathes = _user.Loathes;
    Meat = _user.Meat;
    Fish = _user.Fish;
    Eggs = _user.Eggs;
    Vegetables = _user.Vegetables;
    Fruit = _user.Fruit;
}

查看.个性化.xaml.cs

public PersonalizeViewModel ViewModel { get; set; }

public Personalize()
{
    InitializeComponent();
    BindingContext = new PersonalizeViewModel();
}

查看.个性化.xaml

<Label Text="{Binding Username}" />

<Label Text="Email:" />
<Label Text="{Binding Email}" />

<Label Text="Meat:" />
<Label Text="{Binding Meat}" />

<Label Text="Fish:" />
<Label Text="{Binding Fish}" />

<Label Text="Shopping frequency:" />
<Label Text="{Binding Shopping}" />

<Label Text="Milk:" />
<Label Text="{Binding Milk}" />

<Label Text="Loathes:" />
<Label Text="{Binding Loathes}" />

<Label Text="Eggs:" />
<Label Text="{Binding Eggs}" />

<Label Text="Vegetables:" />
<Label Text="{Binding Vegetables}" />

<Label Text="Fruit:" />
<Label Text="{Binding Fruit}" />

<Label Text="Loathes:" />
<Label Text="{Binding Loathes}" />

相关问题