好的,所以我对Freshmvvm和MVVM模式都很陌生。
我按照一些教程阅读了我在freshmvvm上可以找到的所有内容,但是当我开始编码时,我碰到了墙。
如何更改项目,例如<Label x:myLabel />
文本属性而不将其绑定到PageModel中的变量?可能吗?在纯粹的表单上,我可以使用后面的代码来执行myLabel.Text = "Hello World"
之类的操作。但是在Freshmvvm中,我没有在我的PageModel中引用我的Page项目。
因此,如果我要使用文件后面的代码,那么我需要在文件后面的代码中使用PageModel的引用,反之亦然。怎么做?
或者我应该忘记文件背后的代码并在PageModel中进行所有编码?如果是这样,我如何让Page实例引用我的项目&#39; x:Name&#34; s?
或者我必须将要更改的每个项属性绑定到PageModel中的变量吗?我发现这个选项非常有限。
感谢。
答案 0 :(得分:2)
MVVM的整个想法是不直接从视图模型(页面模型)访问视图(页面),这就是为什么页面模型中没有对页面的引用。如果需要从页面引用页面模型,可以将页面的绑定上下文强制转换为页面模型。我认为最好将文本框的文本绑定到属性并更新它。
var pm = this.BindingContext as MyPageModel