2010-12-26 17 views
0

ist es möglich, etwas wie WPF Fenster Besitzer in caliburn.micro?Eltern-Kind-Modell Interaktion

Ich habe ELTERN View-Modell, von diesem Modell öffne ich CHILD SCREEN {VIEW MODEL} mit dieser Methode:

public IEnumerable<IResult> Open() 
    { 

     yield return new ShowWindow("ChatScreen") 
      .InitializeWith(_service 
      .DetailData(Account, _selectedFriend.Value.Nick), 
      AvatarImage); 
    } 

Diese Methode erstellen Sie ein neues WPF-Fenster - KIND SCREEN und KIND View-Modell mit einigen Variablen initialisieren .

Ich möchte so etwas wie CHILD_SCREEN.PARENT = PARENT_VIEW_MODEL setzen.

Ich möchte erreichen, wenn ich PARENT VIEW MODELL schließe, dass es auch alle KINDERMODELLE schließt.

Es gibt auch Möglichkeit, wie kann ich überprüfen, ob Bildschirm, in meiner Situation WPF-Fenster ist aktiv/inaktiv von MAIN VIEW MODELL?

+0

Die "Master \ Slave" -Terminologie ist in diesen Tagen zugunsten von "Parent \ child" veraltet. –

Antwort

0

Sie müssen die Infrastruktur dafür schreiben. Ich nehme an, dass ShowWindow Caliburn.Micros WindowManager verwendet, um das Fenster anzuzeigen? In diesem Fall müssen Sie einen Verweis auf jedes geöffnete Fenster pflegen. Ist diese Eltern/Kind-Beziehung nur für den Zweck erforderlich, alle Kinder zu schließen, wenn der Elternteil geschlossen ist? Eine Möglichkeit wäre, einen eigenen Leitungstyp zu implementieren, der eine Liste von geöffneten Fenstern und eigene IScreen/Bildschirmtypen unterhält, die den Eltern/Kind-Beziehungsstatus beibehalten.