Silverlight 4.0 Silverlight应用程序代码中的未处理错误:4004 System.Collections.Generic.KeyNotFoundException

Silverlight 4.0 Silverlight应用程序代码中的未处理错误:4004 System.Collections.Generic.KeyNotFoundException,silverlight-4.0,datagrid,user-controls,Silverlight 4.0,Datagrid,User Controls,我以一种非常奇怪的方式得到了这个错误。我已经能够分离出它,我知道是什么导致了它,但我不知道为什么 情况是这样的:我有一个ChildWindow,其中包含一个TabControl,它包含两个UserControl,它们都包含这样一个datagrid,导致未处理的错误: <sdk:DataGrid x:Name="PersonEmailDataContainer" AutoGenerateColumns="False" Height="119" HorizontalAlignment="Lef

我以一种非常奇怪的方式得到了这个错误。我已经能够分离出它,我知道是什么导致了它,但我不知道为什么

情况是这样的:我有一个ChildWindow,其中包含一个TabControl,它包含两个UserControl,它们都包含这样一个datagrid,导致未处理的错误:

<sdk:DataGrid x:Name="PersonEmailDataContainer" AutoGenerateColumns="False" Height="119" HorizontalAlignment="Left" Margin="12,39,0,0" VerticalAlignment="Top" Width="736"
  ItemsSource="{Binding PagedListOfPersonEmail, Mode=TwoWay}" 
  ColumnHeaderStyle="{StaticResource ColBinding}" 
  SelectedItem="{Binding SelectedPersonEmail, Mode=TwoWay}" 
  IsReadOnly="{Binding PersonEmailDataContainerIsReadOnly, Mode=TwoWay}">
  <sdk:DataGrid.Columns>
      <sdk:DataGridTextColumn CanUserReorder="True" CanUserResize="True"
         CanUserSort="True" Width="Auto" />
      <sdk:DataGridTextColumn CanUserReorder="True" CanUserResize="True" 
         CanUserSort="True" Width="20*"
         Binding="{Binding Email, Mode=TwoWay}" 
         Header="{Binding ConverterParameter=HdrEmail, Converter={StaticResource Localization}, Source={StaticResource Localization}}"  />
      <sdk:DataGridTextColumn CanUserReorder="True" CanUserResize="True" 
         CanUserSort="True" Width="20*"
         Binding="{Binding WebSite, Mode=TwoWay}" 
         Header="{Binding ConverterParameter=HdrWebSite, Converter={StaticResource Localization}, Source={StaticResource Localization}}"  />
  </sdk:DataGrid.Columns>
        <!-- more columns -->
    </sdk:DataGrid>


我通过删除第一列解决了这个问题,它只是一个空白列。它不显示数据,没有绑定,甚至没有要显示的标题。知道这是为什么导致错误吗?

如果您有一个绑定到ItemsSource的DataGrid,那么您就不能有一个没有绑定的sdk:DataGridTextColumn。您可以改用sdk:DataGridTemplateColumn。此列类型不需要绑定。

这种绑定很有意义,而且可以正常工作!谢谢你的回答:)