2016-05-04 10 views
0

Ich habe eine neue ComboBox für Themenwechsel hinzugefügt. Und wenn ich ein Element auswähle funktioniert es gut, Auswahl wird geändert, aber wenn ich Text von dieser ComboBox bekomme, gibt es einen anderen Elementtext in ComboBox zurück. Ich weiß nicht, was das Problem ist, ich bemerkte dies, indem ich Debug TextBox hinzufügte und in Text von ComboBox auf Ereignis druckte, wenn ich Auswahl ändere.Combobox Text gibt falsche Informationen

Hier Code:

private void Themecb_SelectionChanged(object sender, SelectionChangedEventArgs e) 
     { 
      if (themeedit == 1) 
      { 
       String txt = Themecb.Text; 
       TextBox1.Text = "THEME WORK " + txt; 
       Tuple<AppTheme, Accent> appStyle = ThemeManager.DetectAppStyle(Application.Current); 
       ThemeManager.ChangeAppStyle(Application.Current, 
              ThemeManager.GetAccent(txt), 
              ThemeManager.GetAppTheme("BaseLight")); // or appStyle.Item1 
      } 
     } 

Und hier ist XML-Datei:

<ComboBox x:Name="Themecb" 
HorizontalAlignment="Left" 
Margin="237,227,0,0" 
VerticalAlignment="Top" 
Width="120" 
SelectionChanged="Themecb_SelectionChanged"/> 
+0

Haben Sie versucht, den Wert von SelectedItem Eigenschaft zu erhalten? Versuchen Sie, die Zeile 'String txt = Themecb.Text;' durch 'String txt = Themecb.SelectedItem als string;' zu ersetzen und lassen Sie mich wissen, ob sie auch einen falschen Wert zurückgibt. –

+0

Danke das hat für mich funktioniert! –

+0

Gut zu wissen, dass es geholfen hat! Ich werde diesen Kommentar als Antwort posten, bitte markieren Sie ihn als korrekt. –

Antwort

1

Haben Sie versucht, den Wert von SelectedItem-Eigenschaft zu erhalten ? Versuchen Sie, die Zeile String txt = Themecb.Text; durch String txt = Themecb.SelectedItem as string; zu ersetzen

0

ersetzen Themecb.Text mit Themecb.SelectedValue

+0

Nein, ich habe Fehler auf diesem .... –

0

ComboBox hat zwei Haupt propeties SelectedText und SelectedValue

SelectedT ext ist die Zeichenfolge Text des ausgewählten Elements SelectedValue ist der Wert, der jedes Element in Backend zu identifizieren verwenden

so in Ihrem Fall versuchen, als Gebrüll

if (themeedit == 1) 
      { 
       String txt = Themecb.SelectedText; 
       TextBox1.Text = "THEME WORK " + txt; 
       Tuple<AppTheme, Accent> appStyle = ThemeManager.DetectAppStyle(Application.Current); 
       ThemeManager.ChangeAppStyle(Application.Current, 
              ThemeManager.GetAccent(txt), 
              ThemeManager.GetAppTheme("BaseLight")); // or appStyle.Item1 
      } 
+0

Nicht funktioniert, sagt SelectedText wird nicht erkannt .... –