在使用itemssource - datagrid wpf之前,items collection必须为空

时间:2012-08-05 04:51:01

标签: c# wpf datagrid

在尝试明确定义datagrid列时,我一直收到此错误。如果我注释掉3个datagridtext列,它可以工作(但我想隐藏一些列)。在我的代码中,我所做的就是为DataGridLookupsTab设置datacontext,而不是在我的代码中弄乱itemsource或任何东西。知道我在这里做错了什么吗?

谢谢!

<TabItem Header="Lookups" Height="23" VerticalAlignment="Top">
            <Grid x:Name="DataGridLookupsTab" Background="#FFE5E5E5" Margin="0,0,-1,-2" DataContext="Apps.OMS.Models.Lookups">
                <ComboBox x:Name="ComboBoxDistinctLookups" HorizontalAlignment="Left" Margin="128,14,0,0" VerticalAlignment="Top" Width="228" ItemsSource="{Binding Path=LookupTypeList}" SelectionChanged="ComboBoxDistinctLookups_SelectionChanged"/>
                <Label Content="Select Lookup Type" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" RenderTransformOrigin="1.105,4.731"/>
                <DataGrid x:Name="DataGridLookups" HorizontalAlignment="Left" Margin="10,41,0,0" VerticalAlignment="Top" Width="768" Height="327" ItemsSource="{Binding LookupRecords}" > 
                    <DataGridTextColumn Binding="{Binding LookupType}" Header="Lookup Type" />
                    <DataGridTextColumn Binding="{Binding LookupValue}" Header="Lookup Value" />
                    <DataGridTextColumn Binding="{Binding LookupDescription}" Header="Lookup Description" />
                </DataGrid>
            </Grid>
        </TabItem>

2 个答案:

答案 0 :(得分:4)

实际上问题最终是我缺少Datagrid.Columns标签。 感谢

答案 1 :(得分:2)

如果您在代码中设置了DataContext(意味着您的后台代码文件),那么请不要在您的XAML中设置您的datacontext。相反,使用ItemSource = {Binding}。看看是否能解决您的问题。