Xamarin.Forms - 将值从 View 传递到 ViewModel
Xamarin.Forms - Pass a value from View to ViewModel
有人知道如何从 Xamarin.Forms 中的视图代码隐藏中将随机字符串值传递给视图模型吗?
字符串值并非来自显示给用户的任何控件。
在页面显示给用户很久之后该值才可用。
我只能在视图中使用该值,而不能在视图模型中使用。
听起来你可以在视图模型上创建一个 属性 或方法来接受该值。
public string APropertyToSet {get; set;}
public void SetSomeValueFromTheView(object value) {}
您可以通过 View
的 BindingContext
访问您的 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;
}
有人知道如何从 Xamarin.Forms 中的视图代码隐藏中将随机字符串值传递给视图模型吗?
字符串值并非来自显示给用户的任何控件。
在页面显示给用户很久之后该值才可用。
我只能在视图中使用该值,而不能在视图模型中使用。
听起来你可以在视图模型上创建一个 属性 或方法来接受该值。
public string APropertyToSet {get; set;}
public void SetSomeValueFromTheView(object value) {}
您可以通过 View
的 BindingContext
访问您的 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;
}