状況は次のとおりです
。DataGridには、別のDataGrid(サブグリッド)を含むRowDetailsTemplateがあります。EventHandlerを含むDataGridTemplateColumnを追加すると、NullReferenceException
PresentationFramework.dllによってaがスローされます。
この問題は、.NET4.0でのみ発生します。プロジェクトが.NET3.5を対象としている場合(およびDataGridコンポーネントにWPFToolkitを使用している場合)、すべてが期待どおりに機能します。
このエラーを再現する小さなサンプルプロジェクトを添付しました。プロジェクトには、問題を再度説明し、例外のスタックトレースを示すREADMEファイルがあります。(サンプルプロジェクトはここにあります)
再現手順:
1。サンプルプロジェクトをそのまま実行します。
2.グリッドの最初の行にある[DeleteMe]リンクを試して、メッセージが表示されることを確認します。
3.最初の列の[表示]セルをクリックして、1つのアイテムを含むサブグリッドが表示されていることを確認します。
4.サブグリッドの[Deleteme]リンクを試して、何も実行されないことを確認します(コードに接続されていません)。
5.ウィンドウを閉じて、MainWindow.xamlに移動します
。6。36行目のMainWindow.xamlのHyperlink.Clickイベントを接続します。HyperlinkタグにClick="HyperlinkClick"を追加します。
7.プロジェクトを再度実行し、最初の列の[表示]をクリックします。NullReferenceExceptionがスローされます。
これはhttps://connect.microsoft.com/VisualStudio/feedback/details/603333/wpf-datagrid-rowdetails-add-2nd-datagrid-to-rowdetailstemplate-with-eventhandlers#detailsからクロスポストされていますが、これはブロッキングの問題です。私のため。
だから問題は:なぜこれが起こっているのですか?これはPresentationFrameworkコードのバグだと思いますが、100%確実ではありません。EventHandlerを期待どおりに機能させるにはどうすればよいですか?
ユーザーがDeleteキーを押すことを許可することで一時的な回避策を見つけましたが、これによりアプリの動作が損なわれます。
この問題を再現してコメントできる人はいますか?