Связывание списков WPF с ItemSource?

У меня есть следующий список, но он не показывает фактические записи, а только пространство имен объекта. Я задавался вопросом, нужно ли мне создавать столбцы в XAML, чтобы он отображал записи, а затем привязывал их к некоторым свойствам объекта или что не так с этим?

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

            ></ListView>

ListOfCustomers - тип ObservableCollection<Customer>. Фактические клиенты загружаются в ObservableCollection, но они не отображаются. Что не хватает?

Ответы

Ответ 1

Вам также нужно выбрать столбцы для отображения:

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

Ответ 2

Вы также можете попробовать

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

где CustomerDataTemplate - это DataTemplate для класса Customer...

Ответ 3

Это потому, что вы не установили свойство DataContext в ListView с экземпляром, который предоставляет свойство ListOfCustomers (который возвращает список отображаемых элементов)?