2017-12-23 6 views
-1

Ich versuche, die zweite Spalte Wert eines ListView abzurufen:Listview erhalten zweite Spalte Wert

void PrintText(object sender, SelectionChangedEventArgs args) 
{ 
    object item = listBox1.SelectedItem; 

    if (item == null) { 
    txtSelectedItem.Text = "No item currently selected."; 
} else { 
    txtSelectedItem.Text = item.ToString(); 
} 

Die oben beide Spalten wird wieder als eine Zeichenfolge, aber nur ich die zweite Säule soll.

Hier ist meine XAML:

<ListView x:Name="lvSurname" ItemsSource="{Binding User}"   
     SelectionChanged="lvSurname_SelectionChanged"> 
    <ListView.View> 
     <GridView> 
     GridViewColumn Header="Surname" DisplayMemberBinding="{Binding Path=Surname}" /> 
     GridViewColumn Header="ClientID" DisplayMemberBinding="{Binding Path=ClientID}" /> 
     </GridView> 
    </ListView.View> 
</ListView> 

Und meine User Klasse:

public class User 
{ 
    public string Surname { get; set; } 
    public string ClientID { get; set; } 
} 

Wie kann ich das tun?

+0

txt.SelectedItem.Text = (Element als Benutzer) .ClientId; ? – Milan

+0

Dies gibt Fehler: Eine Ausnahme vom Typ 'System.NullReferenceException' ist aufgetreten ..... Objektverweis nicht auf eine Instanz eines Objekts festgelegt. – Davomate

Antwort

0

Ist das, was Sie brauchen?

txtSelectedItem.Text = ((User)listBox1.SelectedItem).ClientID; 
+0

Fehler: Darf das Objekt des Typs '<> f__AnonymousType0' 2 [System.String.System.String] nicht in den Typ 'Benutzer' umwandeln. – Davomate

+1

@Davomate Sie müssen die Wahrheit darüber angeben, womit Sie die ListView gefüllt haben. Zeigen Sie, wie Sie es ausgefüllt haben. Zeigen Sie den Code. –

+0

Es ist aus einer Access-Datenbank geladen .. abgeholzt Code .. while (reader.Read()) { \t lvSurname.Items.Add (neu {Name = Leser [ "PSurname"]. ToString() , ClientID = Leser ["PClientID"]. ToString()); } – Davomate