在使用ItemsSource,wpf datagrid之前,项集合必须为空

时间:2013-12-19 09:49:54

标签: wpf datagrid itemscollection

我正在尝试将样式添加到数据网格中,但我收到此错误:

如果我评论样式部分一切正常。 这是我的XAML,任何人都可以帮助我吗?谢谢 安德烈

                    <dg:SelfBindingDataGrid Grid.Row="1" ItemsSource="{Binding Path=CurrentMachine.LNE_AUTOMATION_PARAM, Mode=TwoWay}"
                                SelectedItem="{Binding Path=CurrentAutParameter}" IsReadOnly="False">
                    <dg:SelfBindingDataGrid.Columns>
                        <dg:ExtDataGridComboBoxColumn Header="Spec. Element" Tag="CD_ELEMENT" Width="*"
                                                          TextSearch.TextPath="description" 
                                                          SelectedValueBinding="{Binding Path=CD_ELEMENT, Mode=TwoWay,
                                                               UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, NotifyOnValidationError=True}" 
                                                          ItemsSource="{Binding Source={StaticResource ElementView}}" 
                                                          SelectedValuePath="CD_ELEMENT" 
                                                          DisplayMemberPath="description"/>
                        <dg:ExtDataGridTextColumn Header="Case File" Width="*" Tag="ID_CASE_TEST_FILE_TO_UPPER">
                        </dg:ExtDataGridTextColumn>
                        <dg:ExtDataGridNumericColumn Header="Case Index" Width="*" Tag="ID_INDEX"/>
                        <dg:ExtDataGridNumericColumn Header="MIN" Width="*" Tag="ID_RANGE_MIN"/>
                        <dg:ExtDataGridNumericColumn Header="MAX" Width="*" Tag="ID_RANGE_MAX"/>
                        <dg:ExtDataGridComboBoxColumn Header="Compile Method" Width="*"
                                              ItemsSource="{Binding Source={x:Static local:AddMachineViewModel.ApproachList}, Mode=OneWay}" 
                                              SelectedValueBinding="{Binding Path=ID_COMMAND_FILE, Mode=TwoWay, 
                                                        UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, NotifyOnValidationError=True}" 
                                              SelectedValuePath="ID_TYPE" 
                                              DisplayMemberPath="FL_TYPE"/>
                    </dg:SelfBindingDataGrid.Columns>
                    <Style TargetType="DataGridRow">
                        <Style.Resources>
                            <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="LightBlue"/>
                            <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black" />
                            <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="LightBlue" />
                            <SolidColorBrush x:Key="{x:Static SystemColors.ControlTextBrushKey}" Color="Black" />
                        </Style.Resources>
                    </Style>
                </dg:SelfBindingDataGrid>
            </Grid>
        </GroupBox>

1 个答案:

答案 0 :(得分:2)

您已将样式添加为数据项,但显然希望将其添加到SelfBindingDataGrid的资源中:

<dg:SelfBindingDataGrid ...>
    <dg:SelfBindingDataGrid.Resources>
         <Style TargetType="DataGridRow">
             ...
         </Style>
    </dg:SelfBindingDataGrid.Resources>
    ...
</dg:SelfBindingDataGrid>

如果您打算设置SelfBindingDataGrid的样式,它应如下所示:

<dg:SelfBindingDataGrid ...>
    <dg:SelfBindingDataGrid.Style>
         <Style TargetType="dg:SelfBindingDataGrid">
             ...
         </Style>
    </dg:SelfBindingDataGrid.Style>
    ...
</dg:SelfBindingDataGrid>