Каков наилучший способ передачи объектов в «переходную» модель представления в MVVMCross?

У меня есть ViewModel, которая содержит Team со свойством Players, представляющим собой список объектов Player. В TeamView команда глубоко загружена, поэтому данные игрока уже находятся в памяти.

Как лучше всего передать выбранный экземпляр класса Player в PlayerView?

Проблема в том, что в текущей версии конструкторы MVVMCross ViewModel могут содержать только строковые свойства.

У меня есть следующие идеи:

  1. Передайте идентификатор выбранного игрока и назначьте свойство Team.Players в качестве ViewModel для PlayerView. Это может быть разумным решением, если выбранный игрок является просто сфокусированным игроком в PlayerView, а PlayerView на самом деле представляет собой представление «игроков», где пользователь также может переключаться между другими игроками команды.

  2. Иметь службу ASP.Net MVC, такую ​​как ViewBag, которая может передавать данные только между действиями навигации, в словаре, таком как хранилище, и параметр, передаваемый в PlayerView, представляет собой «viewbag:PlayerId123», который является специальным ключом, указывающим на экземпляр класса. .

  3. Сериализировать выбранный объект в строку и передать его конструктору как сериализованный объект. Это возможно, но мне не нравится это решение.

12
задан Askolein 10 January 2013 в 21:57
поделиться