Мое представление принимает строку json через ее конструктор, затем я хочу немедленно передать строку в ее модель представления. Я очень новичок в Xamarin.forms и замечаю, как мне поступить. Я думаю, что я должен как-то использовать Commanding. Я использую Nuvet MvvmLightLibs Лорана Бюньона (GalaSoft), если это поможет.
Вот код. Я использую средство выбора файлов, чтобы получить файл 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 (может быть, это неправильно), поэтому я пытаюсь выяснить, как правильно отправлять простые значения / объекты из представления в viewModel.