Я пытался обновить параметры от DetailViewModel
до MainViewModel
с помощью протокола сообщений в mvvmcross. Следующий код работает, если вы хотите обновлять свойства на лету; однако я смущен, потому что у меня есть кнопка save
, которая позволяет пользователю подтвердить свои изменения в DetailViewModel
, прежде чем вернуться к MainViewModel
.Кнопка сохранения в протоколе сообщений в MVVMCross
Как я должен обрабатывать этот сценарий? Есть ли способ справиться?
MainViewModel
private readonly IMvxMessenger _messenger;
private readonly MvxSubscriptionToken _token;
public MainViewModel(IMvxMessenger messenger) {
_messenger = messenger;
_token = messenger.Subscribe<SelectedItemMessage>(OnMessageReceived);;
}
private void OnMessageReceived(SelectedItemMessage obj)
{
Age = obj.Age;
Category= obj.Category;
}
DetailViewModel
private readonly IMvxMessenger _messenger;
public DetailViewModel(IMvxMessenger messenger) {
_messenger = messenger;
}
public void UpdateMethod() {
var message = new SelectedItemMessage(this, SelectedItem);
_messenger.Publish(message, typeof(SelectedItemMessage));
}
SelectedItemMessage
public SelectedItemMessage(object sender, double age, int category) : base(sender)
{
Age = age;
Category = category;
}
public double Age { get; set; }
public int Category{ get; set; }
}
Какой код позади метод 'Сохранить'? – Pilatus
@hotspring - Какая у вас проблема? – Giorgi