2016-05-06 9 views
2

Ich entwickle eine Desktop-Anwendung mit Mahapp und Materialdesign. Ich versuche, zwei verschiedene Dialoge im selben Benutzersteuerelement zu haben. Sie sehen so aus:MaterialDesign mehrere Dialoge

<materialDesign:DialogHost x:Name="MachineDialogWindow" Identifier="2" Visibility="{Binding Visibility, ElementName=card}"> 
<grid></grid> 
</materialDesign:DialogHost> 

<materialDesign:DialogHost x:Name="DialogWindow" Visibility="{Binding ActiveDirectoryResult, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource NullVisibilityConverter}}"> 
<grid></grid> 
</materialDesign:DialogHost> 

Ich habe den Großteil des Codes entfernt, um es einfach zu halten. Wenn ich versuche, eine dialoghost in C# wie diese zu erstellen:

var view = new MachineNameDialogView(); 
      { 
       DataContext = new MachineNameDialogViewModel(); 
      } 
      ; 

      //show the dialog 
var result = await DialogHost.Show(view, AddAdministratorEventHandlerOpenedEventHandler, 
             AddAdministratorClosingEventHandler); 

Es funktioniert gut, aber zeigt das Fenster in der falschen Dialoghost. Ich habe eine Kennung zum ersten Fenster hinzugefügt, aber ich weiß nicht, wie man das mit dem Befehl Dialoghost.show
übergibt Ich brauche den dialogClosingEventHandler, aber ich kann sehen, dass es eine Methode Überladung mit Object dialogIdentifier gibt. Also meine Frage ist es möglich, das Beste aus beiden Welten zu bekommen und beides zu bekommen? Und wie kann ich meine Kennung 2 als Objekt an die Methode übergeben?

Antwort

3

Ich fand es heraus. Und jetzt fühle ich mich dumm. Die Punkte unten auf dem Bild, die ich oben gepostet habe, bedeuten, dass es mehr Überladungen gibt. Peek Definition
alles, was ich auf Dialoghost.Show tat, war der rechten Maustaste angeklickt und Definition Peek (Alt + F12) Und fand

public static Task<object> Show(object content, object dialogIdentifier, DialogOpenedEventHandler openedEventHandler, DialogClosingEventHandler closingEventHandler); 

Hope this atleast jemand in der Zukunft helfen könnte :)