在Freshmvvm中访问页面项属性的最佳做法是什么?

时间:2017-02-17 07:26:06

标签: c# xamarin mvvm freshmvvm

好的,所以我对Freshmvvm和MVVM模式都很陌生。

我按照一些教程阅读了我在freshmvvm上可以找到的所有内容,但是当我开始编码时,我碰到了墙。

如何更改项目,例如<Label x:myLabel />文本属性而不将其绑定到PageModel中的变量?可能吗?在纯粹的表单上,我可以使用后面的代码来执行myLabel.Text = "Hello World"之类的操作。但是在Freshmvvm中,我没有在我的PageModel中引用我的Page项目。

因此,如果我要使用文件后面的代码,那么我需要在文件后面的代码中使用PageModel的引用,反之亦然。怎么做?

或者我应该忘记文件背后的代码并在PageModel中进行所有编码?如果是这样,我如何让Page实例引用我的项目&#39; x:Name&#34; s?

或者我必须将要更改的每个项属性绑定到PageModel中的变量吗?我发现这个选项非常有限。

感谢。

1 个答案:

答案 0 :(得分:2)

MVVM的整个想法是不直接从视图模型(页面模型)访问视图(页面),这就是为什么页面模型中没有对页面的引用。如果需要从页面引用页面模型,可以将页面的绑定上下文强制转换为页面模型。我认为最好将文本框的文本绑定到属性并更新它。

var pm = this.BindingContext as MyPageModel
相关问题