【发布时间】:2017-10-06 13:58:40
【问题描述】:
我的应用程序读取 RSS 提要并将其显示在列表中。这主要是有效的:
var rssfeed = new RSSfeed(); // make instance to use
string s = await rssfeed.GetHttpStr(feedUrl); // get feed as string
this.items = rssfeed.ParseRSS(s); // parse RSS into a list
(RSSfeed 是提要中项目的模型。s 是 http 响应字符串。ParseRSS 是一种使用模型将字符串转换为对象的方法。)
(为了简短起见,我已经排除了方法背后的代码。如果您愿意,我也可以根据要求发布。)
以下循环会将每个项目放入 ListView。
foreach (var item in myItems)
{
var htmlSource = new HtmlWebViewSource
{
Html = @"<html><body>" + item.Desc + "</body></html>"
};
this.items.Add(new RSSItem
{
Title = item.Title,
Link = item.Link,
ID = item.Id,
Desc = htmlSource.Html
});
}
这是我的 XAML,在我的 DataTemplate 中:
<ViewCell>
<Frame OutlineColor="Gray">
<StackLayout Margin="5" Padding="5">
<Label Text="{Binding Title}" TextColor="SteelBlue" />
<Label Text="{Binding Link}" FontSize="10" TextColor="Green" />
<Label Text="{Binding Desc}" TextColor="Fuchsia" />
<Grid RowSpacing="0" ColumnSpacing="0" Margin="0" Padding="0" BackgroundColor="Transparent">
<WebView Source="{Binding Desc}" />
</Grid>
</StackLayout>
</Frame>
</ViewCell>
(显然,包裹在 Grid 中的 WebView 不需要 Width/HeightRequest - 这是真的吗?是否有另一种方法可以使其动态调整到内容的大小?)
ListView 显示正常(和大多数 RSS 字段),但我的 WebView 是空的。在 WebView 中显示“Desc”(一个简单的 HTML 图像标记)需要什么?
【问题讨论】:
标签: c# xaml data-binding webview rss