私のSiverlight4アプリケーションでまさにこの問題が発生しています:
説明 データグリッドがハイパーリンク (RichTextBox の一部) にフォーカスを失うと、エラーが発生します。
例外の詳細は次のとおりです。
{
System.InvalidOperationException: Reference is not a valid visual DependencyObject.
at System.Windows.Media.VisualTreeHelper.GetRelative(DependencyObject reference, RelativeKind relativeKind)
at System.Windows.Media.VisualTreeHelper.GetParent(DependencyObject reference)
at System.Windows.Controls.DataGrid.DataGrid_LostFocus(Object sender, RoutedEventArgs e)
at MS.Internal.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args)
at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName)
}
このエラーを再現するには、いくつかのデータを含む DataGrid と、少なくとも 1 つのハイパーリンクを含む RichTextBox を配置します。RichTextBox には IsReadOnly="True" が必要であり、実行時にデータグリッドにフォーカスを置いてハイパーリンクをクリックします。
このバグは、ファイル DataGrid.xaml.cs の 4782 行目にあります。
から: http://silverlight.codeplex.com/workitem/7696
回避策は、Silverlight DLL を編集することであると思われますが、私はそうしたくありません。
編集:どこかをクリックすると、この例外がスローされるようです。
この問題を回避する方法はありますか?