Необработанная ошибка в коде приложения Silverlight: 4004 System.Collections.Generic.KeyNotFoundException - PullRequest
0 голосов
/ 23 сентября 2011

Я получаю эту ошибку очень странным образом.Я смог изолировать его, и я знаю, что его вызывает, но я понятия не имею, почему.

Это ситуация: у меня есть ChildWindow, который содержит TabControl, который содержитдва UserControl, и оба они содержат такую ​​сетку данных, которая вызывает необработанную ошибку:

<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>

Я решил ее, удалив первый столбец, который является пустым столбцом.Он не отображает никаких данных, у него нет привязок, у него даже нет заголовка для отображения.Есть идеи, почему это вызвало ошибку?

1 Ответ

1 голос
/ 22 декабря 2011

Если у вас есть DataGrid, который связан с ItemsSource, то у вас не может быть sdk: DataGridTextColumn, который не имеет привязки. Вместо этого вы можете использовать sdk: DataGridTemplateColumn. Этот тип столбца не требует привязки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...