在 Freshmvvm 中访问页面项目属性的最佳做法是什么?
What is the best practice to access Page items attributes in Freshmvvm?
好的,所以我对 Freshmvvm 和 MVVM 模式还很陌生。
我遵循了一些教程并阅读了我在 freshmvvm 上可以找到的所有内容,但是当我开始编码时我遇到了困难。
如何更改项目,例如 <Label x:myLabel />
文本 属性 而不将其绑定到 PageModel 中的变量?可能吗?在纯 Forms 上,我可以使用后面的代码来做类似 myLabel.Text = "Hello World"
的事情。但是在 Freshmvvm 中,我的 PageModel 中没有对我的页面项的引用。
因此,如果我要使用文件隐藏代码,那么我将需要文件隐藏代码中的 PageModel 引用,反之亦然。怎么做?
或者我应该忘记文件背后的代码并在 PageModel 中完成所有编码?如果是这样,我如何让 Page 实例引用我的项目 'x:Name"s?
或者我必须将要更改的每个项目属性绑定到 PageModel 中的变量吗?我发现这个选项真的很严格。
谢谢。
MVVM 的整个思想是不直接从视图模型(页面模型)访问视图(页面),这就是页面模型没有对页面的引用的原因。如果您需要从页面引用页面模型,您可以将页面的绑定上下文转换为您的页面模型。我认为最好将文本框的文本绑定到 属性 并更新它。
var pm = this.BindingContext as MyPageModel
好的,所以我对 Freshmvvm 和 MVVM 模式还很陌生。
我遵循了一些教程并阅读了我在 freshmvvm 上可以找到的所有内容,但是当我开始编码时我遇到了困难。
如何更改项目,例如 <Label x:myLabel />
文本 属性 而不将其绑定到 PageModel 中的变量?可能吗?在纯 Forms 上,我可以使用后面的代码来做类似 myLabel.Text = "Hello World"
的事情。但是在 Freshmvvm 中,我的 PageModel 中没有对我的页面项的引用。
因此,如果我要使用文件隐藏代码,那么我将需要文件隐藏代码中的 PageModel 引用,反之亦然。怎么做?
或者我应该忘记文件背后的代码并在 PageModel 中完成所有编码?如果是这样,我如何让 Page 实例引用我的项目 'x:Name"s?
或者我必须将要更改的每个项目属性绑定到 PageModel 中的变量吗?我发现这个选项真的很严格。
谢谢。
MVVM 的整个思想是不直接从视图模型(页面模型)访问视图(页面),这就是页面模型没有对页面的引用的原因。如果您需要从页面引用页面模型,您可以将页面的绑定上下文转换为您的页面模型。我认为最好将文本框的文本绑定到 属性 并更新它。
var pm = this.BindingContext as MyPageModel