我在我的 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,以及一个包含至少一个超链接的 RichTextBox,RichTextBox 必须具有 IsReadOnly="True" ,并在运行时将焦点放在数据网格上,单击超链接。
该错误在文件 DataGrid.xaml.cs 中,第 4782 行: DependencyObject parent = VisualTreeHelper.GetParent(focusedDependencyObject);
来自:http ://silverlight.codeplex.com/workitem/7696
解决方法似乎是编辑 Silverlight DLL,我不想这样做。
编辑:看起来单击任何地方都会引发此异常。
还有什么其他想法可以解决这个问题吗?