День добрый,
надо поставить на форму контрол WebBrowser и отобразить в нем собственную HTML разметку. Т.е. передать HTML из MVVM класса. Не получается :-(
В гугле куча примеров (например вот этот:
http://stackoverflow.com/questions/4202961/can-i-bind-html-to-a-wpf-web-browser-control, но как они работают я не понял. Поясните пожалуйста.
1) Создается свойство для WebBrowser
public class BrowserBehavior
{
public static readonly DependencyProperty HtmlProperty = DependencyProperty.RegisterAttached(
"Html",
typeof(string),
typeof(BrowserBehavior),
new FrameworkPropertyMetadata(OnHtmlChanged));
[AttachedPropertyBrowsableForType(typeof(WebBrowser))]
public static string GetHtml(WebBrowser d)
{
return (string)d.GetValue(HtmlProperty);
}
public static void SetHtml(WebBrowser d, string value)
{
d.SetValue(HtmlProperty, value);
}
static void OnHtmlChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e)
{
WebBrowser webBrowser = dependencyObject as WebBrowser;
if (webBrowser != null)
webBrowser.NavigateToString(e.NewValue as string);
}
}
Затем на форме пишется сам WebBrowser:
<WebBrowser local:BrowserBehavior.Html="{Binding MyHtmlString}" />
У меня в этом месте вылетает ошибка.
The namespace prefix "Local" is not defined.На всякий случай прикладываю простенький проект, для примера (Visual Studio 2013).
Что я делаю не так?