2016-12-19 5 views
3

を停止する前に3~4回trigerred。私はまた、ValueChangedイベントを試みたし、どちらの場合も、イベントリスナーは、最初の3か4回を発射し、それだけで動作を停止します。値は間違いなく、私は真と偽の間で交互に、変わった、そしてまだそれだけでしばらく働いて停止します。なぜこれがあるのか​​知っていますか?MVVMLight ValueChangedイベントリスナーは、私がWhenSourceChanges()を使用して、私のviewmodelのbooleanプロパティにバインドしています私のXamarin.Android活動にバインディングを設定している

this.SetBinding(() => this.Vm.ShowErrorMessage) 
.WhenSourceChanges(() => 
{ 
if (this.Vm.ShowErrorMessage) 
{ 
    this.ErrorMsg.Visibility = ViewStates.Visible; 
} 
else 
{ 
    this.ErrorMsg.Visibility = ViewStates.Gone; 
} 
}); 

私は、MvvmLightLibsのV5.3.0を使用してWin10マシン上でVS2015で開発し、Androidのv4.2のサムスンギャラクシーデバイス上でテストしてい。

+0

あなたがどこかのviewmodelを交換していますか?あなたは、イベントがセットアップ – Default

答えて

1

バインディングは、参照弱く、そしてあなたがそれらを保存しない場合はガベージコレクトされます。 Please watch my presentation here。あなたが何をする必要があるか、あなたの場合は

ようなものです:

private List<Binding> _bindings = new List<Binding>(); 

、その後

_bindings.Add(this.SetBinding(…)); // (the rest remains the same). 
+0

はどうもありがとうございましたでのviewmodelを使用していないかのように聞こえます。 :)バインディングを保存すると、私の問題は解決しました。私は同じ問題を抱えている – user2240342

+0

@LBugnionはOPを持っており、私は強い参照に結合保管しています。 'GC.Collect()'が呼び出された後でのみ発生します。今のところ私は 'ValueChanged'を使って回避するだけです。それについての考えは? – jzeferino

関連する問題