Связывание списков 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
(который возвращает список отображаемых элементов)?