Я пытаюсь заставить CefSharp хорошо играть с Caliburn.Micro, но это было не так просто, как я надеялся. Это, вероятно, все еще легко, но я просто недостаточно знаком с любым из них.Интеграция CefSharp.WPF с Caliburn.Micro
Я добавил компонент браузера на мой взгляд:
<cefsharp:ChromiumWebBrowser x:Name="Browser"></cefsharp:ChromiumWebBrowser>
Затем я добавил свойство в моей модели представления с тем же именем:
public ChromiumWebBrowser Browser { get; set; }
я теперь надеялся, что магия Caliburn.Micro в связал это свойство с фактическим браузером в представлении, чтобы я мог использовать Browser
из моего кода.
Чтобы проверить это, я стараюсь идти к определенной веб-странице, когда представление активирован:
protected override void OnActivate()
{
Browser.Dispatcher.Invoke(() =>
{
Browser.Address = "http://stackoverflow.com";
NotifyOfPropertyChange(() => Browser);
});
base.OnActivate();
}
Поскольку браузер принадлежит другой поток Я использую диспетчеру, чтобы иметь возможность доступа к нему должным образом.
Весь этот код работает отлично, без каких-либо исключений, но SO не открывается при загрузке браузера.
Я предполагаю, что это связано с тем, что я не смог получить Caliburn.Micro, чтобы правильно связать два объекта ChromiumWebBrowser
.
Как это сделать?