Как передать строку из представления в ее модель представления в формах Xamarin, используя mvvm light - PullRequest
0 голосов
/ 02 июля 2018

Мое представление принимает строку 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.

1 Ответ

0 голосов
/ 02 июля 2018

попробуйте использовать Messaging Center

Вот ссылка, чтобы помочь вам,

Я все еще хотел бы знать, каков вариант использования и может ли быть лучший подход, потому что я уверен, что может быть. покажи нам какой-нибудь код.

...