【WPF异常】在使用 ItemsSource 之前,项集合必须为空
有这样一段XAML代码:
<DataGrid DataContext="{Binding AlertHistoryList}" ItemsSource="{Binding}"> <DataGridTextColumn Header="部件" Binding="{Binding PartName}"/> <DataGridTextColumn Header="预警时间" Binding="{Binding AlertTimeStr}"/> <DataGridTextColumn Header="预警公式" Binding="{Binding Expression}"/> <DataGridTextColumn Header="处理人" Binding="{Binding Content}"/> </DataGrid>
其中 AlertHistoryList 是 ObservableCollection<T> 类型,作为 DataGrid 的DataContext。
但是运行时抛出以下异常: 在使用 ItemsSource 之前,项集合必须为空。
原因是:没有将 DataGridTextColumn 嵌套在 DataGrid.Columns 中。
正确写法如下:
<DataGrid DataContext="{Binding AlertHistoryList}" ItemsSource="{Binding}" AutoGenerateColumns="False"> <DataGrid.Columns> <DataGridTextColumn Header="部件" Binding="{Binding PartName}"/> <DataGridTextColumn Header="预警时间" Binding="{Binding AlertTimeStr}"/> <DataGridTextColumn Header="预警公式" Binding="{Binding Expression}"/> <DataGridTextColumn Header="处理人" Binding="{Binding Content}"/> </DataGrid.Columns> </DataGrid>