-3

好的,所以我对 Freshmvvm 和 MVVM 模式非常陌生。

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

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

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

还是我应该忘记文件背后的代码并在 PageModel 中完成所有编码?如果是这样,我如何让页面实例引用我的项目“x:名称”?

或者我必须将要更改的每个项目属性绑定到 PageModel 中的变量吗?我发现这个选项真的很严格。

谢谢。

4

1 回答 1

2

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

var pm = this.BindingContext as MyPageModel
于 2017-02-18T18:57:58.033 回答