- FreshMVVM 3.0.0
- Xamarin 形式 4.2
我们的一些输入页面是模态加载的,当用户按下保存时,我们执行Command
这样的
var newTemperature = new Temperature()
{
Date = DateTime.Now,
Value = this.TemperatureValue,
CaptureType = CaptureType.Manual,
IsModified = true,
};
await this.Services.DataService.SaveAsync(newTemperature);
// Save completed, now close modal.
await this.CoreMethods.PopPageModel(data, modal, animate);
如果您查看CoreMethods.PopPageModel
GitHub 中的调用,您会发现它处理两个进程
- 提高 PageWasPopped 信号
- 调用导航服务以从导航堆栈中弹出页面
处理弹出页面的FreshMVVM
代码位于 FreshPageModel 中。除其他外,代码从 Appearing 和 Disappearing 事件中解脱钩,并将BindingContext 设置为 null。从上面的顺序可以看出,这意味着在从堆栈中弹出之前将BindingContext
on设置为 null。View
这样做的问题是,在 0.5 到 1.5 秒之间的短时间内,用户会看到一个View
看起来数据已全部重置的数据。如果他们刚刚按下保存,这可能会非常令人不安。
如果我在调用此问题之前反转逻辑顺序PopPageModel
并从导航堆栈中弹出,则RaisePageWasPopped
此问题消失。
以前没有其他人见过这个问题吗?
任何FreshMVVM
想要指出我建议的方法错误的用户?