Откройте ссылку из DataGridHyperlinkColumn - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть следующий код XAML:

 <DataGridHyperlinkColumn TargetName="{Binding Path=UriLink}" Header="On Line Source" x:Name="OnLineSource" IsReadOnly="True">
                            <DataGridHyperlinkColumn.ElementStyle>
                                <Style TargetType="TextBlock">
                                    <EventSetter Event="Hyperlink.Click" Handler="OnHyperlinkClick" />
                                </Style>
                            </DataGridHyperlinkColumn.ElementStyle>
                        </DataGridHyperlinkColumn>

C#

public void OnHyperlinkClick(object sender, RoutedEventArgs e)
    {
        IWebDriver webDriverProfile;
        webDriverProfile = new ChromeDriver();
        var destination = ((Hyperlink)e.OriginalSource).NavigateUri;

        webDriverProfile.Navigate().GoToUrl(destination.ToString());
        Thread.Sleep(60000);

        webDriverProfile.Quit();

    }

Проблема в том, что через 60 секунд браузер закрывается, и это может быть неудобно для пользователя , Не могли бы вы помочь мне найти решение, чтобы ссылка в DataGridHyperlinkColumn открывала страницу, которая не закрывается по истечении указанного времени?

Я пробовал код отсюда: Обработка DataGridHyperlinkColumn Click Event

Но у меня есть следующая ошибка:

System.ComponentModel.Win32Exception HResult = 0x80004005 Сообщение = Системе не удается найти указанный файл. Source = System.Diagnostics.Process StackTrace: в System.Diagnostics.Process.StartWithCreateProcess (ProcessStartInfo startInfo) в System.Diagnostics.Process.Start () в System.Diagnostics.Process.Start (ProcessStartInfo startInfo) в System.Diagnostics.Process. Начало (String fileName) в App1.MainWindow.OnHyperlinkClick (Отправитель объекта, RoutedEventArgs e) в D: \ Apps .. \ App1 \ App1 \ MainWindow.xaml.cs: строка 291 в System. Windows .EventRoute.InvokeHandlersImpl (Object source, RoutedEventArgs args, Boolean reRaised) в System. Windows .UIElement.RaiseEventImpl (отправитель DependencyObject, RoutedEventArgs args) в System. Windows .ContentElement.RaiseEvent (RoutedEventArgs e) в System. * 1028H.per. OnClick () в System. Windows .Documents.Hyperlink.DispatchNavigation (Отправитель объекта) в System. Windows .Documents.Hyperlink.OnMouseLeftButtonUp (Отправитель объекта, MouseButtonEventArgs e) в System. Windows .Documents.HyperlinkUButouseMo. (MouseButtonEventArgs e) в System. Windows .UIElement.OnMouseLeftButtonUpThu nk (Отправитель объекта, MouseButtonEventArgs e) в System. Windows .RoutedEventArgs.InvokeHandler (Обработчик делегата, Цель объекта) в System. Windows .EventRoute.InvokeHandlersImpl (Исходный объект, аргументы RoutedEventArgs, Boolean reRaised) в System. * .UIElement.ReRaiseEventAs (отправитель DependencyObject, аргументы RoutedEventArgs, RoutedEvent newEvent) в System. Windows .UIElement.OnMouseUpThunk (отправитель объекта, MouseButtonEventArgs e) в System. System. Windows .EventRoute.InvokeHandlersImpl (Источник объекта, аргументы RoutedEventArgs, Boolean reRaised) в System. Windows .UIElement.RaiseEventImpl (отправитель DependencyObject, RoutedEventArgs args) в System. Windows .ConiseEgsTegs. в системе. Windows .Input.InputManager.ProcessStagingArea () в системе. Windows .Input.InputProviderSite.ReportInput (InputReport inputReport) в системе. Windows .Interop.HwndMouseInputProvider.ReportInput (IntPtr hwnd, InputMode метка времени, Действия RawMouseActions, Int32 x, Int32 y, колесо Int32) в System. Windows .Interop.HwndMouseInputProvider.FilterMessage (IntPtr hwnd, сообщение WindowMessage, IntPtr wParam, IntPtr lParam, Boolean & handled) в System. Windows. .InputFilterMessage (IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean & обрабатываются) в MS.Win32.HwndWrapper.WndPro c (IntPtr hwnd, Int32 msg, IntPtr wParam, Int32). HwndSubclass.DispatcherCallbackOperation (Object o) в System. Windows .Threading.ExceptionWrapper.InternalRealCall (обратный вызов делегата, аргументы объекта, Int32 numArgs) в System. , Int32 numArgs, Делегат catchHandler) в System. Windows .Threading.Dispatcher.LegacyInvokeImpl (приоритет DispatcherPriority, время ожидания TimeSpan, метод делегата, объектные аргументы, Int32 numArgs) в MS.Win32.HwndSubclass.SubclassWndPro * 10 * 50 * Int32 msg, IntPtr wParam, IntPtr lParam) в MS. Win32.UnsafeNativeMethods.DispatchMessage (MSG & msg) в System. Windows .Threading.Dispatcher.PushFrameImpl (фрейм DispatcherFrame) в System. Windows .Threading.Dispatcher.PushFrame (фрейм DispatcherFrame) в System. * 1053. грузоотправитель. Запустите () в System. Windows .Application.RunDispatcher (игнорирование объектов) в System. Windows .Application.RunInternal (окно) в System. Windows .Application.Run () в App1.App.Main ( ) "

Возможно, что-то, чего мне не хватает в коде по вышеуказанной ссылке.

Пожалуйста, помогите.

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...