C# MVVMCross中消息协议中的保存按钮

C# MVVMCross中消息协议中的保存按钮,c#,android,xamarin,mvvmcross,C#,Android,Xamarin,Mvvmcross,我一直在尝试使用mvvmcross中的消息协议将参数从DetailViewModel更新到MainViewModel。如果您希望动态更新属性,则以下代码有效;但是,我感到困惑,因为我有save按钮,允许用户在返回MainViewModel之前确认其在DetailViewModel中的更改 我应该如何处理这种情况?有办法处理吗 MainViewModel private readonly IMvxMessenger _messenger; private readonly MvxSubscript

我一直在尝试使用mvvmcross中的消息协议将参数从
DetailViewModel
更新到
MainViewModel
。如果您希望动态更新属性,则以下代码有效;但是,我感到困惑,因为我有
save
按钮,允许用户在返回
MainViewModel
之前确认其在
DetailViewModel
中的更改

我应该如何处理这种情况?有办法处理吗

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;
}
private readonly IMvxMessenger _messenger;

public DetailViewModel(IMvxMessenger messenger) {
    _messenger = messenger;
}

public void UpdateMethod() {
    var message = new SelectedItemMessage(this, SelectedItem); 
    _messenger.Publish(message, typeof(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; }
}

如果您的数据仅在用户执行
保存
操作时更新,请在用户按下
更新方法时调用该方法

public void Save() {

    UpdateMethod();
}

如果您的数据仅在用户执行
保存
操作时更新,请在用户按下
更新方法时调用该方法

public void Save() {

    UpdateMethod();
}
只有在用户确认了操作后,才能使用库显示确认对话框并调用
UpdateMethod

var result = await UserDialogs.Instance.ConfirmAsync("Pick a choice", "Pick Title");
if (result)
{
    UpdateMethod();
}
请确保在使用前正确使用该库

只有在用户确认了以下操作时,才能使用该库显示确认对话框并调用
更新方法

var result = await UserDialogs.Instance.ConfirmAsync("Pick a choice", "Pick Title");
if (result)
{
    UpdateMethod();
}

请确保在使用前正确使用它

保存
方法背后的代码是什么?@hosting-您有什么问题?保存
方法背后的代码是什么?@hosting-您有什么问题?非常感谢Pilatus。当我试图更改
年龄
时,我遇到
formatnumber异常
。换句话说,当我在输入新值之前从
文本视图中清除值/数字时。非常感谢Pilatus。当我试图更改
年龄
时,我遇到
formatnumber异常
。换句话说,当我在输入新值之前从
文本视图中清除值/数字时。