c# - 如何在 ListView 中访问 WebView 的 NavigateToString 属性

标签 c# xaml webview windows-runtime

我有一个 ListView,其中包含 WebView 等内容。当选择此列表中的 ListViewItem 时,我想通过 NavigateToString 方法将 HTML 绑定(bind)到 WebView

WebView 需要位于绑定(bind)列表中(因为它绑定(bind)到项目列表),并且必须使用 NavigateToString(因为 HTML 内容来自代码,而不是在网络上)

有办法做到这一点吗?如果是这样,最好的方法是什么?

最佳答案

当然,您可以使用附加依赖属性或Behavior来添加附加行为。您可以绑定(bind)一个字符串,当值更改时(例如,首次分配时),该字符串将导航到该字符串。

另一个问题可能是它的执行方式。我将 WebView 控件视为一个浏览器窗口,因此,如果您的 ListView 中有一百个项目,您可能不希望为所有这些项目创建一百个 IE 窗口。即使假设您使用默认的 VirtualizingStackPanel 作为 ListView 的 ItemsPanel - 这听起来像是许多问题的根源。我还没有尝试过,所以我可能是错的,但我宁愿尝试解析 html 并将其格式化以在常规 TextBlocks 中使用。对于非常基本的 html,如果您只有纯文本和链接,则可以将 WinRT XAML 工具包的 LinkedHtmlFragment 扩展与 RichTextBlock 一起使用。对于更奇特的东西,您可能需要自己编写一些代码或使用类似 HTML Agility Pack 的东西(虽然我不确定它是否支持 WinRT)。

关于c# - 如何在 ListView 中访问 WebView 的 NavigateToString 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12676520/

相关文章:

c# - 如何在 .Net Core 3 Worker 服务中设置应用程序设置

c# - Kendo ui 下拉列表验证

windows - 如何在 Applicationbar 顶部设置元素(或让布局知道它)?

android - 拒绝在没有用户手势的情况下启动 Intent Webview Android

javascript - React Native——如何注册高级程序(exports.examples)以进行加载?

java - 防止 webview 加载某些 URL

c# - Windows 窗体 TreeView - 绑定(bind)分层递归数据源

c# - 如何使用 WPF XAML 构造堆叠表单?

c# - WPF 用户控件库中的打包字符串

c# - 使用 XmlSerializer 反序列化嵌套列表