更新到MvvmCross 4.2(从3.5开始)后,我们的应用程序中出现了一个新错误。
它是由于其中一个表格单元格中的绑定引起的:
_wrapper = new Wrapper(this) {Item = null};
this.DelayBind(() =>
{
var set = this.CreateBindingSet<MyCell, MyCellViewModel>();
set.Bind(_wrapper).For(w => w.Item).To(vm => vm);
set.Apply();
});
我们在Item
Wrapper
的{{1}} setter中有一些复杂的绑定逻辑。
升级到MvvmCross 4.2后,Item
setter仅在第一次表加载时调用一次。对ReloadTableData()
的后续调用(导致设置单元格DataContext
)不会导致调用Item
setter。
为什么会发生这种情况以及如何解决?