在WPF文本块/框中显示XML文件的内容,无标签

问题描述:

我有一个XML文件从一个RSS提要取得,保存在本地,我只是想显示这个XML文件的内容(没有标签)在一个文本框或一个文本块内 - 只是将其显示给用户。在WPF文本块/框中显示XML文件的内容,无标签

我已经编写了一个方法,它循环遍历整个XML文件,从相关标记中获取信息的每个部分并将其全部存储到列表中。有没有简单的方法让我只是在文本框中显示我新生成的列表的内容?或者甚至只是一个显示完整的XML文件本身而没有标签的方法将非常感谢。

非常感谢!

+0

TextBox,TextBlock或ListBox相同的答案 - 它们只显示字符串。创建一个公共属性,该属性是对象的字符串表示形式,并使用我推荐的ListBox方法绑定到属性,或者使用来自codesparke的循环来调用该属性。如果你使用循环,你可以调用一个方法,但是绑定ListBox必须是一个公共属性。 – Paparazzi

您可以使用以下代码将列表中的每个项目添加到TextBlock中。 (你说你已经移除此列表的标签,是否正确?)

XAML:

<TextBlock x:Name="rssDisplayer" /> 

C#:

private void displayListInTextBlock(List<Item> items) 
{ 
    foreach (Item item in items) 
    { 
     rssDisplayer.Text += item.ToString() + Environment.NewLine; 
    } 
} 

Item.cs,你需要重写ToString()。因为你还没有告诉我们您Item类,我将做一个粗略的猜测在这里:

public class Item 
{ 
    private string content; //just an example 
    public override String ToString() 
    { 
     return content; 
    } 
} 

但是,如果你需要删除XML标记帮助,看看this * answer

+0

是的,我已经删除了标签。我创建的列表实际上包含许多对象,而不是字符串。 XML文件中的每个项目都被用来创建一个Item对象,然后这个对象被存储在列表中。是否仍然可以像上面那样使用循环来获取每个对象的内容并显示这些内容? 如果它有任何用处,我实际上使用Linq to XML来创建这个Item对象列表。 – Beerlol

+0

也许使用StringBuilder建立文本,然后绑定一次速度。 – Paparazzi

+0

@Beerlol我编辑了我的答案,以适应一个'Item'类。你的看起来会有点不同,所以你需要调整它以适应你的目的。 – Adam

如果您在List字符串中有相关信息,那么您可以将它绑定到ListBox,并且可以将ListBox格式化为看起来像文本框。对于我显示的一些大型文本文件,我将它们通过EOL分解为List字符串以显示在ListBox中进行虚拟化。