Xamarin.Forms - 将值从 View 传递到 ViewModel

Xamarin.Forms - Pass a value from View to ViewModel

有人知道如何从 Xamarin.Forms 中的视图代码隐藏中将随机字符串值传递给视图模型吗?

  1. 字符串值并非来自显示给用户的任何控件。

  2. 在页面显示给用户很久之后该值才可用。

  3. 我只能在视图中使用该值,而不能在视图模型中使用。

听起来你可以在视图模型上创建一个 属性 或方法来接受该值。

public string APropertyToSet {get; set;}
public void SetSomeValueFromTheView(object value) {}

您可以通过 ViewBindingContext 访问您的 ViewModel 来做到这一点,如下所示:

((ViewModelType)this.BindingContext).SomeProperty = "someRandomString"

也许 MessagingCenter 概念对您有用

https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/messaging-center/

继续 WoeliJ 的回答,对于那些想要将按钮参数从视图传递到视图模型的人。在下面的示例中,我将按钮文本传递给视图模型中的某个变量。

private void *Clicked Event* (object sender, EventArgs e)
{
   ((*YourViewModel*)this.BindingContext).*SomeVarInViewModel* = ((Button)sender).Text as string;
}