Использование Dynami c CEFSharp с ChromeTabs, но AddressChanged не отображается - PullRequest
0 голосов
/ 04 мая 2020

Я создаю приложение, которое начинается с минимального кода примера CEFSharp, и я использую ChromeTabs в Wpf. У меня CEFSharp правильно перенаправляет всплывающее окно windows на вкладки, но у меня возникла проблема с получением URL-адреса этих динамических c CEFSharp windows. По какой-то причине AddressChanged не отображается для этих динамических c windows. Я попытался использовать LoadingStateChanged для размещения URL-адреса в текстовом поле, но это создает все новые проблемы с потоками. Я провел последние несколько дней, пытаясь заставить это работать, и это сводит меня с ума. Вот как создается моя новая вкладка, но она не отображает событие AddressChanged.

int counttabs = tbControlRCI.Items.Count-1;

            string popURL;
            popURL = popup_request;
                tbControlRCI = this.etTabCntrlRCI;
            //here we should open a new tab and place a new rcibrowser in it and give it the url
            RCIBrowser = new ChromiumWebBrowser(popURL);
                RCIBrowser.Name = "RCIBrow_" + counttabs;

                string shorturl = popURL.Substring(popURL.LastIndexOf("/"), popURL.Length - popURL.LastIndexOf("/"));
                ChromeTabs.ChromeTabItem newTabItem = new ChromeTabs.ChromeTabItem
                {
                    Header = shorturl,
                Name = "RCITab_" + counttabs,
                Content = RCIBrowser

            };
                LifespanHandler lifeRCI = new LifespanHandler();
                RCIBrowser.LifeSpanHandler = lifeRCI;
                lifeRCI.popup_request += life_popup_request;

                tbControlRCI.Items.Add(newTabItem);
                tbControlRCI.SelectedIndex = tbControlRCI.Items.Count - 1;

В моем XAML есть только ChromeTabsControl, в который я помещаю все эти динамические c вкладки и браузеры. Может ли кто-нибудь показать ошибку моих способов?

EDIT: Хорошо, спасибо amaitland, я пробовал несколько разных способов сделать это, но по какой-то причине он просто не обновляется. Все, что мне нужно, это текстовое поле, чтобы показать адрес, на котором работает браузер, так что один способ - это нормально. Итак, я попробовал это:

Binding b = new Binding();
b.Mode = BindingMode.OneWay;
b.Path = new PropertyPath("Address");
b.ElementName = "RCIBrowser";

txtbxRCI.SetBinding(TextBox.TextProperty, b);

Большое спасибо, Hometownnerd

...