2016-07-22 12 views
0

Ist Interaktivität der beste Weg, um ein neues Fenster zu zeigen? Wenn ja, wie kann ich ViewModel von meinem UserControl zurücksetzen/neu initialisieren? Weil ich sehe, es wiederverwendet Popup.Kann die Interaktivität das Popup-Ansichtsmodell jedes Mal zurücksetzen, wenn es ausgelöst wird?

+0

Können Sie uns eine Vorstellung davon geben, was Sie in dieser speziellen Interaktivität tun? Fragen Sie den Endbenutzer nach einem einfachen Ja/Nein oder erlauben Sie ihm, Daten zu bearbeiten, ist es eine Such-/Suchoberfläche oder etwas anderes? –

+0

Ich versuche, 2 Listenfelder zu löschen, damit das nächste Mal, wenn das Fenster erscheint, diese Boxen sauber sind. – kvuong

Antwort

1

In der Interaktionsanfrage von ViewModel für Sie sollte eine Eigenschaft namens Benachrichtigung vorhanden sein. Das wird jedes Mal gesetzt, wenn die Anfrage aufgerufen wird. Fügen Sie eine Logik hinzu, um die Listenfelder zu löschen. Siehe unten:

public INotification Notification 
{ 
    get 
    { 
     return notification; 
    } 
    set 
    { 
     if (value is ItemSelectionNotification) 
     { 
      notification = value as ItemSelectionNotification; 
      OnPropertyChanged(() => Notification); 
      //*** Add ListBox clearing code here!! 
      // Maybe a call to a method -> ClearListBoxes(); 
     } 
    } 
} 

Dies ist, was meine ItemSelectionNotification Klasse wie in Fall sieht man es braucht.

public class ItemSelectionNotification : Confirmation 
{ 
    public ItemSelectionNotification() { } 
    public ItemSelectionNotification(object payload) 
    { 
     Payload = payload; 
    } 
    public object SelectedItem { get; set; } 
    public object Payload { get; } = null; 
}