Как передать переменную из 1 ViewModel в другую?C#

Место общения программистов C#
Ответить
Anonymous
 Как передать переменную из 1 ViewModel в другую?

Сообщение Anonymous »

У меня есть таблица данных с полученной информацией о криптовалютах на главной странице. Пользователь кликает на нужную монету, чтобы просмотреть подробную информацию о ней. Он попадает на страницу сведений о валюте, и вот в чем главная проблема. Я передал выбранную валюту в CurrencyDetailsPageViewModel следующим образом:

Код: Выделить всё

private void OnCurrencyClick(object selectedCurrency)
{
var currency = (Currency)selectedCurrency;

var detailsViewModel = _serviceProvider.GetRequiredService();

detailsViewModel.Currency = currency;

var detailsPage = new CurrencyDetailsPage(detailsViewModel);

detailsPage.DataContext = detailsViewModel;

_navigationService.NavigateTo(detailsPage);
}
И затем мне нужно, чтобы переменная Markets в CurrencyDetailsPageViewModel была инициализирована в соответствии с выбранной валютой:

Код: Выделить всё

public class CurrencyDetailsPageViewModel
{
public IServiceProvider _serviceProvider { get; set; }
public INavigationService _navigationProvider { get; set; }
public ICryptocurrencyService _cryptocurrencyService { get; set; }
public Currency Currency { get; set; }
public List Markets { get; set; }

public CurrencyDetailsPageViewModel(IServiceProvider serviceProvider, INavigationService navigationService, ICryptocurrencyService cryptocurrencyService)
{
_serviceProvider = serviceProvider;
_navigationProvider = navigationService;
_cryptocurrencyService = cryptocurrencyService;
Markets = _cryptocurrencyService.GetTopMarketsAsync(Currency.Id).Result;
}

}
Но проблема в том, что эта ViewModel не полностью инициализирована, поэтому она может инициализировать поле «Рынки», и я не знаю, как с этим правильно обращаться

Подробнее здесь: https://stackoverflow.com/questions/792 ... to-another
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»