2012-03-29 3 views
1

ich WPF bin mit meiner Anwendung für das Erstellen, ich bin ein Fenster Aufruf Formular formobject.Show() aus einer xaml.cs Datei,Weitergabe von Daten von einem Windows Form zu einer xaml.cs Datei

In das Formular habe ich Accept-Taste und eine Abbrechen-Taste. Wie Sie der Datei xaml.cs mitteilen, auf welche Schaltfläche der Benutzer im Formular geklickt hat. Die Ausführung (in ###. Xaml.cs) hängt von der angeklickten Schaltfläche ab.

Antwort

2

ich es gelöst, verwendet, um die Eigenschaft

this.DialogResult = DialogResult.OK; in der Form

und verwenden

if (confirm.DialogResult.ToString() == "OK") in cs-Datei zu überprüfen, welche Taste

@Sebastian Dank für die angeklickt wird Idee.

+1

Sie können auch vergleichen (confirm.DialogResult == DialogResult.OK). Hier ist eine Liste möglicher Werte: http://msdn.microsoft.com/en-us/library/system.windows.forms.dialogresult.aspx –

1

Möchten Sie eine reine Bestätigung/Abbrechen-Auswertung durchführen oder ein komplexeres Ergebnis auswerten? Zum Abbrechen/Bestätigen können Sie wie beschrieben here mit AcceptButton und CancelButton (nur zur Vereinfachung, um Esc und Enter mit den Schaltflächen zu verbinden) und der DialogResult-Eigenschaft verwenden.

Ein komplexeres Ergebnis wird nur die gleiche Art und Weise getan, nur, dass Sie nicht den Dialog gesetzt, sondern eine benutzerdefinierte Eigenschaft:

public partial class Form1 : Form 
{ 
    public string MyProperty { get; set; } 

    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     MyProperty = "Some complex result"; 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     MyProperty = "Some other complex result"; 
    } 
} 

Sie leicht myWinform.MyProperty können den Wert in XAML zu erhalten. CS-Datei, sobald der modale Dialog geschlossen ist (die Instanz ist nicht verfügbar, da Ihre Variable darauf verweist).

Verwandte Themen