2011-12-26 87 views
0

我有一個XML文件從一個RSS提要取得,保存在本地,我只是想顯示這個XML文件的內容(沒有標籤)在一個文本框或一個文本塊內 - 只是將其顯示給用戶。在WPF文本塊/框中顯示XML文件的內容,無標籤

我已經編寫了一個方法,它循環遍歷整個XML文件,從相關標記中獲取信息的每個部分並將其全部存儲到列表中。有沒有簡單的方法讓我只是在文本框中顯示我新生成的列表的內容?或者甚至只是一個顯示完整的XML文件本身而沒有標籤的方法將非常感謝。

非常感謝!

+0

TextBox,TextBlock或ListBox相同的答案 - 它們只顯示字符串。創建一個公共屬性,該屬性是對象的字符串表示形式,並使用我推薦的ListBox方法綁定到屬性,或者使用來自codesparke的循環來調用該屬性。如果你使用循環,你可以調用一個方法,但是綁定ListBox必須是一個公共屬性。 – Paparazzi

回答

1

您可以使用以下代碼將列表中的每個項目添加到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 StackOverflow answer

+0

是的,我已經刪除了標籤。我創建的列表實際上包含許多對象,而不是字符串。 XML文件中的每個項目都被用來創建一個Item對象,然後這個對象被存儲在列表中。是否仍然可以像上面那樣使用循環來獲取每個對象的內容並顯示這些內容? 如果它有任何用處,我實際上使用Linq to XML來創建這個Item對象列表。 – Beerlol

+0

也許使用StringBuilder建立文本,然後綁定一次速度。 – Paparazzi

+0

@Beerlol我編輯了我的答案,以適應一個'Item'類。你的看起來會有點不同,所以你需要調整它以適應你的目的。 – Adam

0

如果您在List字符串中有相關信息,那麼您可以將它綁定到ListBox,並且可以將ListBox格式化爲看起來像文本框。對於我顯示的一些大型文本文件,我將它們通過EOL分解爲List字符串以顯示在ListBox中進行虛擬化。