首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >对自动化对等API的WPF递归调用无效

对自动化对等API的WPF递归调用无效
EN

Stack Overflow用户
提问于 2010-10-26 02:49:33
回答 6查看 15.3K关注 0票数 21

当使用包含组合框列的datatemplatecolumn加载数据网格时,我收到一条错误消息"Recursive call to Automation Peer API is not valid“。错误最终在我们未处理的异常代码中被捕获。这似乎是我的机器上的一个问题,谷歌没有提供解决这个问题的指导来源。这个问题似乎只有在我用数据填充组合框时才会出现。填充组合框(如果我没有加载数据)可以正常工作,并且在显示错误时,我能够在后台看到正确检索到的数据。

我使用了一个WPF datagrid,其中我使用了一个DataGridTemplateColumn来在网格中添加一个组合框。我使用objectdataprovider将下拉列表绑定到枚举。在后面的代码中,在初始化我的屏幕时,我使用Linq2Sql语句来检索数据并填充网格的Itemssource。

代码语言:javascript
复制
<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>

任何和所有关于解决这个问题的指导都是值得感谢的。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-11-04 03:01:14

我通过关闭网格控制上的自动化绕过了我这一端的问题。我发现这个问题是WPF Toolkit控件所独有的,但是我在转换到4.0官方发行版DataGrid时遇到了问题(与这个问题无关)。

因此,我改为从WPFToolkit派生类,并提供此覆盖:

代码语言:javascript
复制
protected override AutomationPeer OnCreateAutomationPeer()
{
   return null;
}

也许有人能告诉我们这是不是一个好主意。

票数 23
EN

Stack Overflow用户

发布于 2011-11-30 00:41:43

我在WPFToolkit DataGrid的NET 3.5中也遇到了同样的问题。

我已经将我的WPFToolkit DataGrid绑定到EntityFramework ObservableCollection,具有双向关联的实体层次结构(父项<->项)。

我通过在DataGrid上禁用隐式启用的AutoGenerateColumns并手动设置列解决了这个问题。

希望这能有所帮助。

票数 4
EN

Stack Overflow用户

发布于 2010-11-03 05:56:40

我也遇到了同样的问题--你使用的是WPFToolkit的数据网格,还是.NET 4.0附带的数据网格。我们仍然在使用这里的工具包1。

另外,我注意到当通过远程桌面使用应用程序时,这个问题不会发生。

类似的问题在这里发布:

http://wpf.codeplex.com/workitem/14443

提出了一个解决方案。我还没有机会去尝试一下。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4017786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档