web-dev-qa-db-fra.com

Liaison WPF Listview à ItemSsource?

J'ai la listview suivante, mais elle ne montre pas les enregistrements réels, mais seulement l'espace de noms de l'objet. Je me suis demandé si je devais créer les colonnes en XAML pour qu'il affiche les enregistrements et ensuite le lier à certaines propriétés d'un objet ou qu'est-ce qui ne va pas?

<ListView
            Name="ListCustomers"
            ItemsSource="{Binding Path=ListOfCustomers}"
            SelectedItem="{Binding Path=SelectedCustomer}"
            SelectionMode="Single"
            IsSynchronizedWithCurrentItem="True"
            HorizontalAlignment="Stretch"
            VerticalAlignment="Stretch"
            MinHeight="100"

            ></ListView>

ListOfCustomers est un ObservableCollection<Customer> type. Les clients réels sont chargés dans ObservableCollection, mais ils ne sont pas affichés. Que manque-t-il?

18
Tony The Lion

Vous devez également sélectionner les colonnes à afficher:

<ListView ItemsSource="{Binding ListOfCustomers}"
          SelectedItem="{Binding Path=SelectedCustomer}"
          ....>
  <ListView.View>
    <GridView>
      <GridViewColumn Width="140" Header="First Name"
         DisplayMemberBinding="{Binding FirstName}"  />
      <GridViewColumn Width="140" Header="Last Name"  
         DisplayMemberBinding="{Binding LastName}" />
      <GridViewColumn Width="140" Header="Email Address"
         DisplayMemberBinding="{Binding Email}" />
      ....
    </GridView>
  </ListView.View>
</ListView>
40
ChrisF

Vous pouvez également essayer

<ListView
.
.
ItemTemplate="{StaticResource CustomerDataTemplate}"
.
.
/>

où CustomerDataTemplate est un DataTemplate pour la classe Customer ...

4
miensol

Est-ce parce que vous n'avez pas défini la propriété DataContext de ListView avec l'instance qui expose la propriété ListOfCustomers (qui renvoie la liste des éléments à afficher)?

0
Gishu