【发布时间】:2018-07-02 15:51:56
【问题描述】:
我的视图通过其构造函数接收一个 json 字符串,然后我想立即将字符串传递给它的视图模型。我对 Xamarin.forms 非常陌生,并且有一个说明我应该如何去做。我想我应该以某种方式使用指挥。如果有帮助,我正在使用 Laurent Bugnion (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 的代码中完成的。我正在尝试将此文本发送到 view1 的视图模型“viewModel1”。如果我能做到这一点,我就可以从 viewModel1 导航到 view2,将字符串传递给 view2 的构造函数......
public void GoToView2(string jsonString)
{
_navigationService.NavigateTo(ViewModelLocator.view2, jsonString);
}
从这里我可以使用我用来将字符串从 view1 传递到 viewModel1 的任何过程来为 view2 到 viewModel2 做同样的事情。根据我的阅读,您希望在使用 MVVM 时避免使用消息中心(这可能是错误的),所以我试图找出将简单值/对象从视图发送到视图模型的正确方法。
【问题讨论】:
标签: c# xamarin xamarin.forms mvvm-light