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}" />
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步