zoukankan      html  css  js  c++  java
  • 【WPF异常】在使用 ItemsSource 之前,项集合必须为空

     1 <DataGrid x:Name="dataGrid" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="620" Height="269" AutoGenerateColumns="False" GridLinesVisibility="None" CanUserDeleteRows="False"
     2                     CanUserAddRows="False" ItemsSource="{Binding ListStudent}"> 
     3             <DataGridTextColumn Header="编号" Width="80" Binding="{Binding Student.studentid}"/>
     4             <DataGridTextColumn Header="姓名" Width="80" Binding="{Binding Student.name}"/>
     5             <DataGridTextColumn Header="年龄" Width="80" Binding="{Binding Student.age}"/>
     6             <DataGridTextColumn Header="性别" Width="80" Binding="{Binding Student.sex}"/>
     7             <DataGridTextColumn Header="特点" Width="120" Binding="{Binding Student.remark}"/>
     8             <DataGridTemplateColumn Header="选中" SortMemberPath="IsSelected" Width="120">
     9                 <DataGridTemplateColumn.CellTemplate>
    10                     <DataTemplate>
    11                         <CheckBox IsChecked="{Binding Path=IsSelected,UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Center" HorizontalAlignment="Center" Command="{Binding Path=DataContext.SelectStudentItemCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGrid}}}"
    12                     />
    13                     </DataTemplate>
    14                 </DataGridTemplateColumn.CellTemplate>
    15             </DataGridTemplateColumn> 
    16         </DataGrid>

    报错“在使用 ItemsSource 之前,项集合必须为空”

    观察一下便可发现设计器里没有正确显示各列,是因为少了DataGrid.Columns节点

     1 <DataGrid x:Name="dataGrid" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="620" Height="269" AutoGenerateColumns="False" GridLinesVisibility="None" CanUserDeleteRows="False"
     2                     CanUserAddRows="False" ItemsSource="{Binding ListStudent}">
     3             <DataGrid.Columns>
     4             <DataGridTextColumn Header="编号" Width="80" Binding="{Binding Student.studentid}"/>
     5             <DataGridTextColumn Header="姓名" Width="80" Binding="{Binding Student.name}"/>
     6             <DataGridTextColumn Header="年龄" Width="80" Binding="{Binding Student.age}"/>
     7             <DataGridTextColumn Header="性别" Width="80" Binding="{Binding Student.sex}"/>
     8             <DataGridTextColumn Header="特点" Width="120" Binding="{Binding Student.remark}"/>
     9             <DataGridTemplateColumn Header="选中" SortMemberPath="IsSelected" Width="120">
    10                 <DataGridTemplateColumn.CellTemplate>
    11                     <DataTemplate>
    12                         <CheckBox IsChecked="{Binding Path=IsSelected,UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Center" HorizontalAlignment="Center" Command="{Binding Path=DataContext.SelectStudentItemCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGrid}}}"
    13                     />
    14                     </DataTemplate>
    15                 </DataGridTemplateColumn.CellTemplate>
    16             </DataGridTemplateColumn>
    17             </DataGrid.Columns>
    18         </DataGrid>

    改为以上即可

  • 相关阅读:
    linux打包解压包(.tar .gz .tar.gz .zip)
    centos安装fusesshfs通过挂载目录实现数据双向同步
    WSL远程访问Windows下的MySQL方法
    Linux中hugepage的使用方法
    Python科普系列——类与方法(下篇)
    Treevalue(0x02)——函数树化详细解析(上篇)
    Treevalue(0x03)——函数树化详细解析(下篇)
    Python科普系列——类与方法(上篇)
    个人网站迁移之旅:从博客到知识库,从 Hexo 到 Docusaurus
    wpf 动画结束后保留end值,动画结束后会失去绑定,可以在completed事件重新进行绑定
  • 原文地址:https://www.cnblogs.com/dyfisgod/p/7064801.html
Copyright © 2011-2022 走看看