gpt4 book ai didi

WPF 对 Automation Peer API 的递归调用无效

转载 作者:行者123 更新时间:2023-12-02 08:26:31 24 4
gpt4 key购买 nike

我收到一条错误消息

"Recursive call to Automation Peer API is not valid"

  • 加载带有包含 combobox 列的 datatemplatecolumndatagrid 时。该错误最终被我们未处理的异常代码捕获。这似乎是我的机器上的一个问题,谷歌没有提供解决该问题的指导来源。该问题似乎仅在我用数据填充组合框时才会出现。

  • 填充组合框(如果我不加载数据)可以正常工作,并且在显示错误时我可以看到在后台正确检索的数据。

  • 我正在使用 WPF 数据网格,其中使用 DataGridTemplateColumn网格内添加组合框 。我使用 objectdataprovider 将下拉列表绑定(bind)到 enum

  • 在初始化屏幕时的代码中,我使用 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>
</grid:DataGridTemplateColumn>
<grid:DataGrid.Columns>

感谢有关解决此问题的任何和所有指导。

最佳答案

我通过关闭网格控件上的自动化绕过了我这边的问题。我发现该问题是 WPF Toolkit 控件特有的,但我在转换到 4.0 正式版本 DataGrid 时遇到问题(与此问题无关。)

因此,我从 WPFToolkit 派生该类并提供此重写:

protected override AutomationPeer OnCreateAutomationPeer()
{
return null;
}

也许有人可以告诉我们这是否是一个好主意。

关于WPF 对 Automation Peer API 的递归调用无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4017786/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com