У меня возникла именно эта проблема в моем приложении 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 (focusDependencyObject);
От: http://silverlight.codeplex.com/workitem/7696
Обходным решением является редактирование DLL-файлов Silverlight, что я бы предпочел не делать.
РЕДАКТИРОВАТЬ: похоже, что нажатие в любом месте вызывает это исключение.
Есть еще идеи, как мне обойти эту проблему?