WebBrowser采用MVVM绑定的方式更新内容

WebBrowser本身并没有提供MVVM方式更新网页内容的方式。
因为现在公司的项目基本上都使用MVVM的方式开发了。
所以想着,也可以简单地封装一个类来实现前后台绑定的功能

实现代码:

public static class WebBrowserBehaviour
{
    public static readonly DependencyProperty HtmlTextProperty =
        DependencyProperty.RegisterAttached(
            "HtmlText",
            typeof(string),
            typeof(WebBrowserBehaviour),
            new UIPropertyMetadata(null, (s, e) =>
            {
                if (s is WebBrowser ue && e.NewValue != null)
                {
                    ue.NavigateToString(e.NewValue?.ToString());
                }
            })
        );

    public static string GetHtmlText(DependencyObject obj)
    {
        return (string)obj.GetValue(HtmlTextProperty);
    }

    public static void SetHtmlText(DependencyObject obj, string value)
    {
        obj.SetValue(HtmlTextProperty, value);
    }
}

前台使用:

<WebBrowser cg2:WebBrowserBehaviour.HtmlText="{Binding HtmlText, Mode=OneWay}" />
posted @   wzwyc  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示