Frage

Ich habe ein Objekt, das in vereinfachter Form ist wie folgt:

public class MyObject
{
     public bool Activate { 
     get { MessageBox.Show("My Status"); } 
     set { Do Some Stuff }
}

Ich habe eine Datatemplate, die die „Aktivieren“ Eigenschaft auf ein Kontrollkästchen Karten wie folgt:

<DataTemplate x:Key="ComponentResourceKey TypeInTargetAssembly={x:Type local:PropertyGrid}, ResourceId={x:Type clr:Boolean}}">
      <CheckBox IsEnabled="{Binding Path=IsWriteable}" IsChecked="{Binding Path=Value}"/>
</DataTemplate>

Die Vorlage ist von dem WPF Property Grid Kontrolle, dass ich mit. Das Problem ist, dass das Meldungsfeld nicht angezeigt wird und das Hauptfenster wird auf eine Antwort von der Box warten. Ich höre die Fehlermeldung Ton, wenn der Anruf erwartet wird, aber kein Dialog vorhanden ist.

Gibt es etwas in WPF, die die z-Reihenfolge ändert? Leite ich in einem Kontext, erwarte ich nicht?

War es hilfreich?

Lösung

Sie sollten niemals eine messagebox in einem Getter zeigen! Verwenden Sie stattdessen die Befehle.

Wenn Sie den Pass MessageBox.Show das aktuelle Fenster als Parameter aufrufen, sollte es angezeigt modal werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top