2010-02-08 18 views
14

Ho il seguente listview, ma non mostra i record attuali, ma solo lo spazio dei nomi dell'oggetto. Mi chiedevo se avrei bisogno di creare le colonne in XAML perché mostrasse i record e poi li legasse ad alcune proprietà di un oggetto o cosa non andasse in questo?WPF Listview vincolante a ItemSource?

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

      ></ListView> 

ListOfCustomers è un tipo ObservableCollection<Customer>. I clienti effettivi vengono caricati nella ObservableCollection, ma non vengono visualizzati. Che cosa manca?

risposta

35

È necessario selezionare le colonne da visualizzare così:

<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> 
0

È perché non è stata impostata la proprietà DataContext di ListView con l'istanza che espone la proprietà ListOfCustomers (che restituisce l'elenco di elementi da visualizzare)?

+0

ho impostato il datacontext della finestra alla classe che contiene la proprietà, non dovrebbe essere sufficiente? –

+0

@ Tony - sì dovrebbe essere. Dovrebbe insinuarsi per trovare il contesto dei dati. Sembra che tu abbia risolto dalla risposta acc. Qual'era il problema? – Gishu

+0

Il problema era che non avevo colonne create nella mia listview vincolate alla mia classe Cliente. –

4

Si potrebbe anche provare

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

dove CustomerDataTemplate è un DataTemplate per la classe Customer ...

Problemi correlati