C# 在datagrid wpf中使用带有复选框控件的ItemsSource之前,Items集合必须为空
此错误仅在添加以下XAML代码时发生:C# 在datagrid wpf中使用带有复选框控件的ItemsSource之前,Items集合必须为空,c#,wpf,xaml,C#,Wpf,Xaml,此错误仅在添加以下XAML代码时发生: 出现此错误的原因有很多,其中大部分(如果不是全部的话)已经在StackOverflow上讨论过了。请看以下帖子: 如果你在这些帖子中找不到答案,也许你可以自己搜索。。。一般情况下,SO用户最好在提问之前进行搜索。出现此错误的原因有很多,其中大部分(如果不是全部)已经在StackOverflow上讨论过。请看以下帖子: 如果你在这些帖子中找不到答案,也许你可以自己搜索。。。一般情况下,SO用户最好在这里提问之前进行搜索。我也第一次遇到了
出现此错误的原因有很多,其中大部分(如果不是全部的话)已经在StackOverflow上讨论过了。请看以下帖子:
如果你在这些帖子中找不到答案,也许你可以自己搜索。。。一般情况下,SO用户最好在提问之前进行搜索。出现此错误的原因有很多,其中大部分(如果不是全部)已经在StackOverflow上讨论过。请看以下帖子:
如果你在这些帖子中找不到答案,也许你可以自己搜索。。。一般情况下,SO用户最好在这里提问之前进行搜索。我也第一次遇到了类似的问题,我注意到如果您忘记添加/附上
<DataGrid.Columns> </DataGrid.Columns>
标签我第一次也遇到了类似的问题,我注意到如果您忘记添加/附上标签,甚至可能会收到此错误消息
<DataGrid.Columns> </DataGrid.Columns>
标签仅供参考 我遇到了这个问题,因为我添加了这个看起来很奇怪的样式:
<Style TargetType="{x:Type DataGridCell}">
<EventSetter Event="PreviewMouseLeftButtonDown" Handler="DataGridCell_PreviewMouseLeftButtonDown" />
</Style>
仅供参考 我遇到了这个问题,因为我添加了这个看起来很奇怪的样式:
<Style TargetType="{x:Type DataGridCell}">
<EventSetter Event="PreviewMouseLeftButtonDown" Handler="DataGridCell_PreviewMouseLeftButtonDown" />
</Style>
这是我的代码!它起作用了。真的,我忘了把标签放在合适的地方
<DataGrid x:Name="CostsDataGrid" HorizontalAlignment="Left" Margin="307,98,0,0" VerticalAlignment="Top" Height="260" Width="313" AutoGenerateColumns="False" MinColumnWidth="35" VerticalGridLinesBrush="#FF7A7878" HorizontalGridLinesBrush="#FF7A7878" RowHeight="35" Foreground="Black" PreviewMouseRightButtonDown="CostsDataGrid_PreviewMouseRightButtonDown" >
<DataGrid.Columns>
<DataGridTemplateColumn Header="состояние" Width="70" IsReadOnly="False">
<DataGridTemplateColumn.CellTemplate >
<DataTemplate>
<CheckBox IsChecked="{Binding Path=IsSelected, UpdateSourceTrigger=PropertyChanged}" Checked="OnChecked" Unchecked="OffChecked"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="расход" Binding="{Binding name}" Width="121" IsReadOnly="True" />
<DataGridTextColumn Header="сумма" Binding="{Binding price}" Width="120" IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
这是我的代码!它起作用了。真的,我忘了把标签放在合适的地方
<DataGrid x:Name="CostsDataGrid" HorizontalAlignment="Left" Margin="307,98,0,0" VerticalAlignment="Top" Height="260" Width="313" AutoGenerateColumns="False" MinColumnWidth="35" VerticalGridLinesBrush="#FF7A7878" HorizontalGridLinesBrush="#FF7A7878" RowHeight="35" Foreground="Black" PreviewMouseRightButtonDown="CostsDataGrid_PreviewMouseRightButtonDown" >
<DataGrid.Columns>
<DataGridTemplateColumn Header="состояние" Width="70" IsReadOnly="False">
<DataGridTemplateColumn.CellTemplate >
<DataTemplate>
<CheckBox IsChecked="{Binding Path=IsSelected, UpdateSourceTrigger=PropertyChanged}" Checked="OnChecked" Unchecked="OffChecked"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="расход" Binding="{Binding name}" Width="121" IsReadOnly="True" />
<DataGridTextColumn Header="сумма" Binding="{Binding price}" Width="120" IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
出于同样的原因,我收到了同样的错误。如果我去掉这个,它就会消失。你是怎么解决的?我因为同样的原因犯了同样的错误。如果我去掉这个,它就会消失。你是怎么做到的?这对我很有效。结果我复制并粘贴了我使用的DataGridTemplateColumn
到了错误的位置,在
标记之外。这对我来说很有效。结果我复制并粘贴了我使用的DataGridTemplateColumn
到了错误的位置,在
标记之外