Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Freshmvvm中访问页面项属性的最佳实践是什么?_C#_Xamarin_Mvvm_Freshmvvm - Fatal编程技术网

C# 在Freshmvvm中访问页面项属性的最佳实践是什么?

C# 在Freshmvvm中访问页面项属性的最佳实践是什么?,c#,xamarin,mvvm,freshmvvm,C#,Xamarin,Mvvm,Freshmvvm,好的,所以我对Freshmvvm和MVVM模式非常陌生 我学习了一些教程,阅读了freshmvvm上的所有内容,但当我开始编写代码时,我遇到了麻烦 如何在不将项目绑定到PageModel中的变量的情况下更改项目(如文本属性)?可能吗?在纯表单上,我可以使用代码隐藏来执行类似于myLabel.Text=“Hello World”的操作。但在Freshmvvm中,我的页面模型中没有对页面项目的引用 因此,如果我要使用代码隐藏文件,那么我需要代码隐藏文件中的页面模型引用,反之亦然。怎么做 或者我应该忘

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

我学习了一些教程,阅读了freshmvvm上的所有内容,但当我开始编写代码时,我遇到了麻烦

如何在不将项目绑定到PageModel中的变量的情况下更改项目(如
文本属性)?可能吗?在纯表单上,我可以使用代码隐藏来执行类似于
myLabel.Text=“Hello World”
的操作。但在Freshmvvm中,我的页面模型中没有对页面项目的引用

因此,如果我要使用代码隐藏文件,那么我需要代码隐藏文件中的页面模型引用,反之亦然。怎么做

或者我应该忘记文件背后的代码,在页面模型中进行所有的编码吗?如果是,如何让页面实例引用我的项目“x:Name”

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


谢谢。

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

var pm = this.BindingContext as MyPageModel