Ich verwende ein Raster, um Textfelder und Kombinationsfelder zu halten. Ich möchte das ausgewählte Element aus den Kombinationsfeldern und den Text aus den Textfeldern abrufen. Gibt es eine Möglichkeit, dies zu tun, ohne das UIElement als Combo oder Textfeld zu casten. Im Folgenden mache ich das gerade.Abrufen von Text aus einer WPF-Combobox oder einem Textfeld in C#
foreach (UIElement field in _fields)
{
string val="";
if (field is TextBox)
{
TextBox bx = field as TextBox;
val=bx.Text;
}
else if (field is ComboBox)
{
ComboBox bx = field as ComboBox;
val=bx.SelectedItem.ToString();
}
}
Dank
Mit dem MVVM-Muster würden Sie ein Ansichtsmodell haben, das mit den Daten im Fenster/der Seite synchron bleibt, was bedeutet, dass Sie nie in die tatsächlichen Steuerelemente greifen müssen. Was ist der Zweck dieses Codes? Es scheint so, als würde "val" immer den Wert des letzten Steuerelements haben, das überschliffen wird. – Crowcoder
Ich werde versuchen und erklären, im Grunde entwickle ich eine Art Textdatei-Editor, der eine bestimmte Syntax benötigt. Es gibt einen Abschnitt der Datei mit 6-11 Feldern, die durch ein ':' getrennt sind, einige Felder können eine Anzahl von Optionen haben, daher das Kombinationsfeld, andere brauchen nur einen Namen oder einen Zeichenfolgenwert. Es gibt eine Funktion, um die Syntax der Datei zu überprüfen. Der obige Code durchläuft einfach jede vom Benutzer eingegebene Zeile, ruft den Text ab und erstellt ein Dateiobjekt für die Validierungsfunktion. val sind nur die Daten, die ich dem Dateiobjekt hinzufügen möchte –