情况如下:
DataGrid有一个RowDetailsTemplate,它包含另一个DataGrid(子网格)。如果添加包含EventHandler的DataGridTemplateColumn,则PresentationFramework.dll会抛出NullReferenceException
。
此问题仅出现在.NET 4.0 中。如果项目的目标是.NET 3.5(并使用WPFToolkit作为DataGrid组件),那么一切都按预期工作。
我附上了一个重现此错误的小样本项目。在该项目中是一个README文件,它再次解释了该问题,并显示了异常的堆栈跟踪。 (示例项目可以找到here)
重现步骤:
1.按原样运行示例项目
2.尝试网格第一行中的“删除我”链接,确认它显示一条消息
3.单击第一列中的“SHOW”单元格,并确认它显示带有一个项目的子网格
4.尝试子网格中的“删除我”链接,确认它什么都不做。(它没有在代码中连接)。
5.关闭窗口并转到MainWindow.xaml
6.在第36行的MainWindow.xaml中连接Hyperlink.Click事件:将Click =“HyperlinkClick”添加到Hyperlink标记。
7.再次运行项目,然后单击第一列中的“SHOW”:抛出NullReferenceException!
这是https://connect.microsoft.com/VisualStudio/feedback/details/603333/wpf-datagrid-rowdetails-add-2nd-datagrid-to-rowdetailstemplate-with-eventhandlers#details的转发版,但这对我来说是个阻碍问题。
所以问题是:为什么会发生这种情况?我认为这是PresentationFramework代码中的一个错误,但我不是100%肯定。我该怎么做才能使EventHandler按预期工作?
我通过允许用户按下删除键找到了临时解决办法,但这打破了我们应用的行为。
有没有人可以复制和评论这个问题?
答案 0 :(得分:0)
我遇到了类似的问题,似乎与CanUserAddRows =“True”有关...如果我将其设置为false,则问题就会消失。