2016-05-31 6 views
0

Ich kann einen Timer von ViewModels Konstruktor ohne Probleme starten. Ich verstehe jedoch nicht, wie ich es stoppen kann, wenn View nicht mehr sichtbar ist. Ich habe versucht,WPF MVVM Stopp-Timer, wenn die Ansicht nicht sichtbar ist

`Visibility="{Binding ...}"` 

und

`Unloaded="{Binding }"` 

aber diese scheinen nicht so der Timer für immer geht zu arbeiten. Das Modell muss den Timer stoppen, wenn die Ansicht nicht mehr sichtbar ist

+3

Platz Stoppbedingungen in Fall schließen die Ihre Ansicht schließt. – A191919

+0

Leider war es nicht ich, der ursprünglich die App entworfen hat, so dass ich das nicht tun kann, wenn ich nicht alles umschreibe. Bitte beachten Sie, dass Sichtbarkeit und Entladen niemals aus einem mir unbekannten Grund empfangen werden. – hinst

+0

'Unloaded' ist ein Ereignis, wie können Sie daran binden? Und Ihre Bindung an die 'Visibility'-Eigenschaft (Ihres Steuerelements, wie ich es verstehe) wird überschrieben, wenn' Wrapper 'Ihres Steuerelements (Fenster oder anderes oberes Steuerelement) ihm einen Wert zuweisen wird. Sie sollten wahrscheinlich nur eine öffentliche Methode erstellen, die von derselben Stelle aufgerufen wird, an der Ihr Steuerelement versteckt ist, wie es bereits von @ A191919 vorgeschlagen wurde. – Sam

Antwort

0

Eine sehr schlechte Möglichkeit wäre in der setter der Eigenschaft, die an die Visibility bindet.

Oder die bessere Lösung wie oben erwähnt

Platz Stoppbedingungen in Fall, dass Ihre Ansicht