为什么我的浏览器元素不显示我的 html 字符串?

Why did my Browser Element doesent show my html string?

所以我第一次尝试使用 Wpfl 中的 Web 浏览器元素。我尝试在 Web 浏览器元素中显示我的 html 字符串。我是这样试过的:

  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);
    }

在我看来我的 属性 是这样的:

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

和我的 XAML 一样:

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

但它没有显示我的 html 字符串。我做错了什么?

如果当您将附加的 属性 设置为像这样的本地值时它起作用,您就知道绑定到 html 失败了:

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

此外,您绑定到名为“html”的 属性,但您发布的那个名为 html1

确保您已将控件的 DataContext 设置为具有 public html 属性 returns 的 class一个string。那么您的代码应该可以工作。