Mon objet de contexte de données contient une propriété de chaîne qui renvoie du code HTML que je dois afficher dans le contrôle WebBrowser; Je ne trouve aucune propriété de WebBrowser à laquelle le lier. Des idées?
Merci!
La WebBrowser
possède une méthode NavigateToString que vous pouvez utiliser pour accéder au contenu HTML. Si vous souhaitez pouvoir vous y lier, vous pouvez créer une propriété attachée qui peut simplement appeler la méthode lorsque la valeur change:
public static 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 d, DependencyPropertyChangedEventArgs e)
{
WebBrowser wb = d as WebBrowser;
if (wb != null)
wb.NavigateToString(e.NewValue as string);
}
}
Et vous l'utiliseriez ainsi (où lcl
est l'alias xmlns-namespace-alias):
<WebBrowser lcl:BrowserBehavior.Html="{Binding HtmlToDisplay}" />