我需要在我的 ViewModel 中订阅INotifyPropertyChanged
我的一个模型。我的研究导致我:如何在子视图模型更新时更新父视图模型。
我尝试WeakSubscribe
按照 #3 中的建议使用,但在多次进入和离开视图后,我的整个应用程序要么冻结要么崩溃。
这是我Init()
在 ViewModel 中的代码:
foreach (var sale in Model.Sales)
{
sale.WeakSubscribe(delegate
{
Model.CalculateSalesTotals();
});
}
当应用程序崩溃时,我得到SIGSEGV
:
I/mono-stdout(30334): mvx:Diagnostic:227.00 显示 ViewModel InvoiceAuthorizationViewModel I/ActivityManager(391):从 pid 30334 开始 u0 {flg=0x10000000 cmp=com.desco.escMobile/escmobile.android.views.InvoiceAuthorizationView(有附加功能)} I/mono-stdout(30334): mvx:Diagnostic:227.19 从 Intent 加载新的 ViewModel 和 Extras D/dalvikvm(30334):GC_EXPLICIT释放783K,5%释放17252K/18068K,暂停2ms+8ms,共53ms I/mono-stdout(30334): MvxBind:Warning:227.59 Unable to bind: source property source not found Cirrious.MvvmCross.Binding.Parse.PropertyPath.PropertyTokens.MvxPr 空对象上的 opertyNamePropertyToken I/mono-stdout(30334): MvxBind:Warning:227.61 Unable to bind: source property source not found Cirrious.MvvmCross.Binding.Parse.PropertyPath.PropertyTokens.MvxPr 空对象上的 opertyNamePropertyToken I/mono-stdout(30334): MvxBind:Warning:227.63 Unable to bind: source property source not found Cirrious.MvvmCross.Binding.Parse.PropertyPath.PropertyTokens.MvxPr 空对象上的 opertyNamePropertyToken I/dalvikvm(30334):Jit:将 JitTable 的大小从 4096 调整为 8192 I/ActivityManager(391): 显示 com.desco.escMobile/escmobile.android.views.InvoiceAuthorizationView: +755ms (总共 +1s259ms) I/ActivityManager(391):显示 com.desco.escMobile/escmobile.android.views.InvoiceAuthorizationView:+1s279ms I/ActivityManager(391): 进程 com.android.vending (pid 30179) 已经死亡。 E/mono-rt (30334):堆栈跟踪: 电子/单声道 (30334): 电子/单声道 (30334): E/mono-rt (30334): ========================================== ========================= E/mono-rt (30334):在执行本机代码时获得 SIGSEGV。这通常表明 E/mono-rt (30334):单声道运行时或本机库之一中的致命错误 E/mono-rt (30334):由您的应用程序使用。 E/mono-rt (30334): ========================================== ========================= 电子/单声道 (30334): I/ActivityManager(391):进程 com.desco.escMobile (pid 30334) 已死亡。 I/WindowState(391): WIN DEATH: Window{42cf2e60 u0 com.desco.escMobile/escmobile.android.views.InvoiceAuthorizationView} W/ActivityManager(391):强制删除 ActivityRecord{42e05b20 u0 com.desco.escMobile/escmobile.android.views.InvoiceAuthorizationView}:应用程序死亡,没有保存 st 吃 I/WindowState(391): WIN DEATH: Window{427bfbf0 u0 com.desco.escMobile/escmobile.android.views.DispatchListView} I/WindowState(391): WIN DEATH: Window{42b32b50 u0 com.desco.escMobile/escmobile.android.views.InvoiceDetailsView} I/WindowState(391): WIN DEATH: Window{43003e48 u0 com.desco.escMobile/escmobile.android.views.InvoiceAuthorizationView} I/WindowState(391): WIN DEATH: Window{42aea920 u0 com.desco.escMobile/escmobile.android.views.DispatchDetailsView} D/dalvikvm(30434):后期启用 CheckJNI I/ActivityManager(391):为活动 com.desco.escMobile/escmobile.android.views.InvoiceAuthorizationView 启动 proc com.desco.escMobile:pid=30434 uid=10086 gids={50086, 3003, 1015, 1028} D/Zygote (129):进程 30334 干净退出 (255)
有什么建议么?