Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Why did my Browser Element doesent show my html string?

So I try to work the first time with an Web Browser Element in Wpfl. I tryd to show my html string in the Web Browser Element. I tried it like that:

  public static readonly DependencyProperty HtmlProperty = DependencyProperty.RegisterAttached(
        "Html",
        typeof(string),
        typeof(Class1),
        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);
    }

and in my View my Property like that:

private string _html;
    public string html1
    {
        get
        {
            string html = "html string here";
            return _html + html;
        }
        set
        {
            _html = value;
            NotifyPropertyChanged(nameof(html1));
        }
    }

and my XAML like that:

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

        <WebBrowser local:Class1.Html="{Binding html}"></WebBrowser>

But it dosent show my html string. What am I doing wrong?

>Solution :

If it works when you set the attached property to a local value like this you know that your binding to html fails:

<WebBrowser local:Class1.Html="test..."></WebBrowser>

Also, you bind to a property called "html" but the one you have posted is named html1.

Ensure that you have set the DataContext of the control to a class that has a public html property that returns a string. Then your code should work.

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading