У меня есть простой DataGridWPF Datagrid проблема выбора при получении асинхр данных
<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>
Я заселить этот DataGrid от элементов объекта
код позади:
public List<Item> Items { get; set;}
private async void GetData()
{
await Task.Run(() =>
{
GetItems();
});
}
private void GetItems()
{
Items = facade.GetItems();
}
Все работает отлично, я получить данные и заполнить datagrid async. Проблема возникает, когда я хочу выбрать строку, я не могу. Я нажимаю на ячейку, и выбор автоматически исчезает.
Когда я заполнить DataGrid синхронизации проблема уходит
Я бы не использовать 'list', как правило, вы хотите,' ObservableCollection', привязанные к ' ItemsSource'. Как часто вы заполняете «Элементы»? Вы делаете это по требованию или периодически? – mechanic
Я заполняю пункты по требованию. Даже если я использую ObservableCollection, проблема сохраняется. Кроме того, я реализую INotifyPropertyChanged, поэтому не должно быть никаких проблем со списком- –
user1416072
Я предполагаю, что у вас может быть другой код, очищающий выделение, потому что этот код, который вы показываете, выглядит хорошо. Используете ли вы какую-либо структуру MVVM? Когда вы говорите «Когда я заполняю синхронизацию datagrid», вы имеете в виду, что вы загружаете элементы async или вы удаляете IsAsync из привязки в xaml? –