xaml - 将多个绑定上下文添加到 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?
解决方案
您缺少一些基本概念,导致您的请求很奇怪。
您不会将数据绑定到类定义,而是绑定到类的实例。由于一个 ViewModel 是一个类,它可能包含您数据绑定到的其他类的实例,除此之外的所有内容在 99% 的情况下都是错误的做法,而您的示例不是这 1% 的情况之一。
所以基本上你的 ViewModel 应该是这样的:
public class PersonViewModel
{
public Person Person {get; set}
public ICommand AddPersonCommand {get; set}
}
然后,您的 BindingContext 是 PersonViewModel 的一个实例,然后在 Label 上您绑定到 Person,而在按钮上您将绑定到 AddPersonCommand。
推荐阅读
- sql - 如何找回上一期的输赢数据?
- python - Keras 模型精度没有提高 - 图像分类
- javascript - 声明后未读取导入值
- webpack - chrome 在调试 webpack 构建的捆绑 javascript 文件时不显示原始变量名
- python - Gunicorn + eventlet 在 SIGTERM 信号处理程序中使用 redis 连接
- javascript - 如何解决 MIME 类型的二进制/八位字节流问题?
- java - android 应用程序 - 当我尝试使用振动时 Java 迷恋
- flutter - 在flutter video_player插件上设置代理url以在cdn工作流上进行hls重定向
- azure - 无法将文件从 azure 文件共享复制到 azure VM 中的本地磁盘
- javascript - JavaScript映射中出现值最高的键?