Я получаю сообщение об ошибке "Рекурсивный вызов метода автоматизации Peer API недействителен" при загрузке datagrid с помощью столбца datatemplate, содержащего столбец combobox. Ошибка заканчивается в нашем необработанном коде исключения. Это, похоже, проблема на моей машине, и Google не предоставил никаких указаний по решению проблемы. Проблема возникает, только когда я заполняю выпадающие списки с данными. Заполнение списков сопоставлений (если я не загружаю данные) работает правильно, и пока отображается ошибка, я могу видеть, что данные правильно извлекаются в фоновом режиме.
Я использую WPat datagrid, где я использую DataGridTemplateColumn для добавления combobox внутри сетки. У меня есть выпадающий список, связанный с перечислением с использованием объекта dataatrovider. В коде, который стоит при инициализации моего экрана, я использую оператор Linq2Sql для извлечения данных и заполнения Itemssource сетки.
<grid:DataGrid.Resources>
<ObjectDataProvider
x:Key="ChangeTypeData"
MethodName="GetValues"
ObjectType="{x:Type System:Enum}">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="namespace:ChangeType" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</grid:DataGrid.Resources>
<grid:DataGrid.Columns>
<grid:DataGridTextColumn Binding="{Binding DatapointName}" Header="Datapoint Changed" IsReadOnly="True" Width="Auto" />
<grid:DataGridTemplateColumn Header="Change Type">
<grid:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox
Text="{Binding Path=ChangeTypeName}"
ItemsSource="{Binding Source={StaticResource ChangeTypeData}}"
Name="dgcboChangeType"
SelectionChanged="dgcboChangeType_SelectionChanged"/>
</DataTemplate>
</grid:DataGridTemplateColumn.CellTemplate>
Все рекомендации по решению этой проблемы приветствуются.