【问题标题】:Error: Items collection must be empty before using ItemsSource . Data grid错误:在使用 ItemsSource 之前,Items 集合必须为空。数据网格
【发布时间】:2016-03-23 23:35:51
【问题描述】:

我不知道为什么这个错误一直发生在 xml 代码中。

上面写着:

"使用 ItemsSource 之前,Items 集合必须为空"

当我添加DataGridTextColumn.CellStyle 触发器部分时会发生这种情况,否则它运行良好。我需要帮助。

我的 XAML 代码是:

<Window x:Class="WPFDatagridCustomization.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:loc="clr-namespace:WPFDatagridCustomization"
    xmlns:local="clr-namespace:WPFDatagridCustomization.HelperClasses"
    Title="MainWindow"
    Width="600"
    Height="500">

<Grid>
    <DataGrid Name="dataGrid1"
              Grid.Row="3"
              Grid.Column="1"
              Margin="10"
              HorizontalAlignment="Left"
              VerticalAlignment="Top"
              AlternationCount="2"
              AutoGenerateColumns="False"
              ItemsSource="{Binding TemperatureCollection}"
              Loaded="dataGrid1_Loaded"
              MinRowHeight="26"

              RowDetailsVisibilityChanged="dataGrid1_RowDetailsVisibilityChanged">



        <DataGrid.Columns>



            <DataGridTextColumn Width="120"
                                Binding="{Binding TableNo}"
                                Header="Table No" />
            <DataGridTextColumn Width="120"
                                Binding="{Binding TableArea}"
                                Header="Unknown Column" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time6}"
                                Header="6:00" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time630}"
                                Header="6:30" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time7}"
                                Header="7:00" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time730}"
                                Header="7:30" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time8}"
                                Header="8:00" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time830}"
                                Header="8:30" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time9}"
                                Header="9:00" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time930}"
                                Header="9:30" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time10}"
                                Header="10:00" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time1030}"
                                Header="10:30" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time11}"
                                Header="11:00" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time1130}"
                                Header="11:30" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time12}"
                                Header="12:00" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time1230}"
                                Header="12:30" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time13}"
                                Header="13:00" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time1330}"
                                Header="13:30" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time14}"
                                Header="14:00" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time1430}"
                                Header="14:30" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time15}"
                                Header="15:00" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time1530}"
                                Header="15:30" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time16}"
                                Header="16:00" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time1630}"
                                Header="16:30" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time17}"
                                Header="17:00" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time1730}"
                                Header="17:30" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time18}"
                                Header="18:00" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time1830}"
                                Header="18:30" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time19}"
                                Header="19:00" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time1930}"
                                Header="19:30" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time20}"
                                Header="20:00" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time2030}"
                                Header="20:30" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time21}"
                                Header="21:00" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time2130}"
                                Header="21:30" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time22}"
                                Header="22:00" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time2230}"
                                Header="22:30" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time23}"
                                Header="23:00" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time2330}"
                                Header="23:30" />
            <DataGridTextColumn Width="40"
                                Binding="{Binding time24}"
                                Header="24:00" />


        </DataGrid.Columns>

        <DataGridTextColumn>
            <DataGridTextColumn.CellStyle>
                <Style TargetType="TextBlock">
                    <Style.Triggers>
                        <Trigger Property="Text" Value="1">
                            <Setter Property="Background" Value="LightGreen"/>
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </DataGridTextColumn.CellStyle>
        </DataGridTextColumn>         

       </DataGrid>
     </Grid>
 </Window>

【问题讨论】:

    标签: wpf datagrid


    【解决方案1】:

    您在 DataGrid-Node 正下方添加了最后一个 DataGridTextColumn,这就是为什么它被视为一个项目。

    把它放在 DataGrid.Columns 下面就可以了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-19
      • 2014-06-03
      • 1970-01-01
      • 1970-01-01
      • 2012-03-04
      • 2013-08-08
      • 1970-01-01
      相关资源
      最近更新 更多