gpt4 book ai didi

c# - 在 ViewModel 中访问 Xamarin.Forms

转载 作者:行者123 更新时间:2023-12-03 10:54:10 25 4
gpt4 key购买 nike

我对 Xamarin.forms 中的跨平台开发非常陌生。我的代码应该是高度可单元测试的,并且我创建了一个 ViewModel我的 View 之间进行交流的类(class)和 Model .我想知道,如果我们要在 View 模型中访问 Xamarin.forms(使用 Xamarin.Forms;),这是一种不好的做法还是违反了 MVVM 概念。如果是这样,我们如何在 ViewModel 中使用 Command 来绑定(bind) View 。

谢谢

最佳答案

从 View 模型访问 View 确实“违反”了 MVVM 原则。所以,你是对的!绑定(bind) Command不过,这并不难,并且与您可能使用过的任何其他绑定(bind)一样工作。

在您的 View 模型中,只需为 Command 定义一个属性:

public class YourViewModel
{
public Command YourCommand { get; set; }
}

然后在构造函数中定义应该执行的逻辑:
public YourViewModel()
{
YourCommand = new Command(() =>
{
Console.WriteLine("TADA!");
});
}

当然,您可以将其定义为自己的单独方法或以其他方式声明。为简洁起见,我现在已经内联了。

要从 XAML 绑定(bind)到它,只需执行以下操作:
<Button Text="Make it so!" Command="{Binding YourCommand}" />

并确保您已设置 BindingContext页面上的属性到 View 模型。如果您使用的是 MVVM 框架,您可能已经这样做了。

在某些时候,您可能希望绑定(bind)到 ListView 中的单元格。或类似的。在这种情况下,请记住范围会发生变化。然后,您将绑定(bind)到该单元格后面的 View 模型,而不是页面。因此,您必须引用该页面才能到达 BindingContext .但是,当您到达那里时,请越过那座桥,请记住它有一些特别之处。

关于c# - 在 ViewModel 中访问 Xamarin.Forms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51036603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com