首页 > 解决方案 > 将多个绑定上下文添加到 xaml 文件

问题描述

我尝试实现我的第一个 MVVM 项目。首先,我创建了名为“person.cs”的模型。然后我创建了一个模型视图“AddPerson.cs”,它应该动态创建存储在 person.cs 中的数据。在我看来(完全用 xaml 创建)我有一个按钮,它应该从我的“AddPerson.cs”调用方法“CreatePerson()”。我喜欢绑定方法。

此外,我创建了一个标签,它应该绑定到类“person.cs”,例如绑定到公共字符串“Name”。

如何将 Button 的 BindingContext 设置为“AddPerson.cs”-class,将 Label 的 BindingContext 设置为“person.cs”-class?

标签: xamlxamarinbinding-context

解决方案


您缺少一些基本概念,导致您的请求很奇怪。

您不会将数据绑定到类定义,而是绑定到类的实例。由于一个 ViewModel 是一个类,它可能包含您数据绑定到的其他类的实例,除此之外的所有内容在 99% 的情况下都是错误的做法,而您的示例不是这 1% 的情况之一。

所以基本上你的 ViewModel 应该是这样的:

public class PersonViewModel
{
   public Person Person {get; set}
   public ICommand AddPersonCommand {get; set}
}

然后,您的 BindingContext 是 PersonViewModel 的一个实例,然后在 Label 上您绑定到 Person,而在按钮上您将绑定到 AddPersonCommand。


推荐阅读