Je simple DataGridWPF DataGrid problème de sélection lors de l'obtention des données async
<DataGrid x:Name="dgSample" ItemsSource="{Binding Items, IsAsync=True}" AutoGenerateColumns="False" SelectionMode="Single" CanUserAddRows="False" CanUserDeleteRows="False" SelectionUnit="FullRow">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Name}" IsReadOnly="True"/>
<DataGridTextColumn Header="Date" Binding="{Binding Date}" IsReadOnly="True"/>
<DataGridTemplateColumn Header="Sent" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Sent}" IsEnabled="False" HorizontalAlignment="Center"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
Je renseigner ce DataGrid des articles objet
code derrière:
public List<Item> Items { get; set;}
private async void GetData()
{
await Task.Run(() =>
{
GetItems();
});
}
private void GetItems()
{
Items = facade.GetItems();
}
Tout fonctionne bien, je récupère les données et remplit le datagrid async. Le problème vient quand je veux sélectionner une rangée, je ne peux pas. Je clique sur une cellule et la sélection disparaît automatiquement.
Quand je POPULATE synchronisation DataGrid le problème disparaît
je ne voudrais pas utiliser un 'list', en général, vous voulez un' ObservableCollection' lié au ' ItemsSource'. À quelle fréquence remplissez-vous les 'Items'? Le faites-vous sur demande ou périodiquement? – mechanic
Je remplis les éléments à la demande. Même si j'utilise ObservableCollection, le problème persiste. En outre, j'implémente INotifyPropertyChanged, donc il ne devrait y avoir aucun problème avec la liste- –
user1416072
Je suppose que vous pourriez avoir un autre code pour effacer la sélection, parce que ce code que vous montrez semble bon. Utilisez-vous un framework MVVM? Quand vous dites "Quand je remplis la synchronisation de datagrid" vous voulez dire que vous chargez les articles async ou vous supprimez IsAsync de la liaison dans xaml? –