【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>

  

posted @ 2016-09-23 11:06  song-z  阅读(7993)  评论(3编辑  收藏  举报