1
时,我有一个简单的数据网格WPF 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>
我填充这个数据网格从项目对象后面
代码:
public List<Item> Items { get; set;}
private async void GetData()
{
await Task.Run(() =>
{
GetItems();
});
}
private void GetItems()
{
Items = facade.GetItems();
}
一切正常,我获取数据并填充datagrid异步。当我想选择一行时,问题就出现了,我不能。我点击一个单元格,选择自动消失。
当我填充数据网格的同步问题消失
我不会用'List',通常你想要一个'ObservableCollection'绑定到' ItemsSource'。你多久填充'Items'?你是按需还是定期做? – mechanic
我按需填充项目。即使我使用ObservableCollection,问题仍然存在。此外,我实现INotifyPropertyChanged,所以应该不会有任何问题列表- –
user1416072
我的猜测是,你可能有其他代码清除选择,因为你显示的代码看起来不错。你使用任何MVVM框架?当你说“当我填充数据网格同步”时,你的意思是加载项目异步,或者你从xaml中的绑定中移除IsAsync? –