6 Stimmen

Silverlight - wie erhalte ich den Text des ausgewählten Elements in einer Combobox

Eine leichte Aufgabe für euch alle...

Ich bin neu in Silverlight und vermisse wirklich Sachen wie DataTables und so. Was ich bin auch derzeit kämpfen mit ist, wie man den Text meiner Combobox aktuell ausgewählte Element zu erhalten. In Winforms würde ich getan haben:

ComboBox myCombo = new ComboBox.......
string selected = myCombo.Text;

Ich weiß nicht, wie ich diese Informationen weitergeben soll.

9voto

Jason Jackson Punkte 16792

Das ausgewählte Element Ihres Kombinationsfeldes ist der Typ des Elements, das gerade angezeigt wird. Wenn Sie also die Bindung auf eine Sammlung von Strings setzen, wird das ausgewählte Element ein String sein:

string mySelectedValue = ((string)MyComboBox.SelectedItem);

Wenn es sich um ein komplexeres Objekt handelt, müssen Sie das erwartete Objekt gießen und verwenden. Wenn Sie XAML haben, das die Listenfeld-Elementklasse verwendet, wie:

<ComboBox x:Name="MyComboBox">
    <ComboBox.Items>
        <ComboBoxItem>
            <TextBlock Text="Hello World"/>
        </ComboBoxItem>
    </ComboBox.Items>
</ComboBox>

Dann würden Sie auf das ausgewählte Element wie folgt zugreifen:

string mySelectedValue = 
  ((TextBlock)((ComboBoxItem)MyComboBox.SelectedItem).Content).Text;

7voto

Calanus Punkte 24434

Richtig, die Antwort ist die Verwendung von myCombo.SelectionBoxItem.ToString()

3voto

Für ein komplexes Objekt verwenden Sie Reflexion mit der Eigenschaft DisplayMemberPath:

var itemType = cbx.SelectedItem.GetType();
var pi = itemType.GetProperty(cbx.DisplayMemberPath);
var stringValue = pi.GetValue(cbx.SelectedItem, null).ToString();

3voto

Mangesh Punkte 4881
((ComboBoxItem)comboBox1.SelectedItem).Content.ToString()

Ich habe es mit dieser Aussage geschafft.

1voto

PhilipChrist Punkte 19
string txt=(comboboxID.SelectedItem as BindingClass).Text.ToString();

string value=(comboboxID.SelectedItem as BindingClass).Value.ToString();

 public class BindingClass
 {
     public string Text
       {
         set;
          get;
      }

     public string Value
       {
         set;
          get;
      }
 }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X