3

我需要在我的 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)

有什么建议么?

4

0 回答 0