У меня есть ViewModel, который содержит команду, у которой есть свойство Players, которое является списком объектов Player. В TeamView команда загружена, поэтому данные игрока уже находятся в памяти.
Каков наилучший способ передать данный выбранный экземпляр класса Player в PlayerView?
Проблема заключается в том, что конструкторы MVVMCross ViewModel могут содержать только строковые свойства в текущей версии.
У меня есть следующие идеи:
-
Передайте идентификатор выбранного игрока и назначьте свойство Team.Players как ViewModel для PlayerView. Это может быть разумным решением, если выбранный игрок является только сфокусированным игроком в PlayerView, а PlayerView действительно является "игровым" представлением, в котором пользователь может провести пальцем между другими игроками команды.
-
Имейте ASP.Net MVC, например службу ViewBag, которая может переносить данные только между действиями навигации, в словаре, подобном хранилищу, и параметр, переданный в PlayerView, представляет собой "viewbag: PlayerId123", который является специальным ключом, указывающим на экземпляр класса.
-
Сериализуйте выделенный объект в строку и передайте его как сериализованный объект в конструктор. Это возможно, но мне это не нравится.