Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.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# 如何使用mvvm light将字符串从视图传递到Xamarin表单中的视图模型_C#_Xamarin_Xamarin.forms_Mvvm Light - Fatal编程技术网

C# 如何使用mvvm light将字符串从视图传递到Xamarin表单中的视图模型

C# 如何使用mvvm light将字符串从视图传递到Xamarin表单中的视图模型,c#,xamarin,xamarin.forms,mvvm-light,C#,Xamarin,Xamarin.forms,Mvvm Light,我的视图通过其构造函数接收json字符串,然后我想立即将该字符串传递给它的视图模型。我是Xamarin.forms的新手,有一张便条确定我应该如何做。我想我应该以某种方式使用命令。如果有帮助的话,我正在使用Laurent Bugnon(GalaSoft)的MvvmLightLibs NuGet 下面是一些代码。我使用一个文件选择器获取一个json文件,然后反序列化它并获取文本 FileData fileData = await CrossFilePicker.Current.PickFile()

我的视图通过其构造函数接收json字符串,然后我想立即将该字符串传递给它的视图模型。我是Xamarin.forms的新手,有一张便条确定我应该如何做。我想我应该以某种方式使用命令。如果有帮助的话,我正在使用Laurent Bugnon(GalaSoft)的MvvmLightLibs NuGet

下面是一些代码。我使用一个文件选择器获取一个json文件,然后反序列化它并获取文本

FileData fileData = await CrossFilePicker.Current.PickFile();

fileName = fileData.FileName;

if (fileName.EndsWith(".json", StringComparison.CurrentCulture))

{                        
     MockJsonFile mockJsonFile = JsonConvert.DeserializeObject<MockJsonFile>(File.ReadAllText(fileData.FilePath));
     string json = JsonConvert.SerializeObject(mockJsonFile, Formatting.Indented);                       
     FilePathlabel.Text = json;                                                         
}

从这里,我可以使用我用来将字符串从view1传递到viewModel1的任何进程,对view2到viewModel2执行相同的操作。从我所读到的内容来看,在使用MVVM时,您希望避免使用消息中心(这可能是错误的),因此我试图找出将简单的值/对象从视图发送到viewModel的正确方法。

尝试使用
消息中心


我仍然想知道用例是什么,以及是否有更好的方法,因为我相信可以。给我们看一些代码。

我添加了一些代码。从我所读到的内容来看,我觉得在mvvm中应该避免使用消息中心。基本上,我试图找出如何将简单的值/对象从视图发送到视图模型。
public void GoToView2(string jsonString)
{
     _navigationService.NavigateTo(ViewModelLocator.view2, jsonString);
}