C# MVVMCross中消息协议中的保存按钮
我一直在尝试使用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
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异常
。换句话说,当我在输入新值之前从文本视图中清除值/数字时。