Xamarin MVVM деятельность обязательна - PullRequest
1 голос
/ 11 марта 2019

Я пытаюсь научить себя формам Xamarin, но мне трудно сосредоточиться на том, как действия и общий код взаимодействуют с MVVM для конкретного приложения ... из того, что я могу собрать, к части модели можно получить доступ как из viewmodel, так и из скажи основной вид деятельности, а в свою очередь основной вид деятельности может получить доступ к общему коду? Такое ощущение, что во всех справочных документах отсутствует связь с действиями и общим кодом?

Так что, если я хочу создать приложение, которое может сканировать тег NFC и передавать эту информацию службе REST, мне нужно создать клиент API API общего кода, специфичный для платформы NFC (mainactivity.cs?), А затем привязать к модель для помещения данных в пользовательский интерфейс?

1 Ответ

0 голосов
/ 11 марта 2019

Целью MVVM является полная изоляция между бизнес-логикой, пользовательским интерфейсом и моделями данных.

Итак, учитывая ваш сценарий, вы бы создали представление для Android, скорее всего, в формате AXML. Любая логика, которую вы обычно делаете в деятельности Android, будет выполняться в ViewModel, в общем коде.

Затем вы создадите клиентское подключение REST API в общем коде, например, в папке служб. Так как это функциональность, которая не должна зависеть от платформы Все платформы могут использовать это как есть.

Из ViewModel вы можете затем вызвать REST API и заполнить ваши модели, которые будут вызываться из представлений, т.е. действие будет иметь ссылку на ViewModel и любые модели, которые содержит ViewModel.

Когда дело доходит до вашего сценария NFC, вы будете писать методы NFC в ViewModel, а затем будете использовать что-то вроде Служба зависимостей , чтобы определить платформу, которая затем будет запускать логику NFC, записанную в каждом из них. проект платформы.

Это означает, что когда вы представляете iOS или другие платформы, вы можете повторно использовать эту Модель и ViewModel, которая затем вызовет логику NFC, написанную в проекте iOS.

...