2010-07-15 52 views
1

我有一個小項目,我認爲WPF將是完美的,但我沒有那麼多的時間,所以我正在尋找可行性信息和指針。我試圖從XML文檔中顯示大量項目,並且從目前爲止我已閱讀的內容中可以看出:使用WPF來顯示XML

將XML文檔用作數據源。

將XML中的每個項加載到一個對象中,然後將其添加到集合中。 (是否可以將XML直接綁定到集合?)

使用集合將它綁定到視圖。

視圖中的每個對象都以類似於HTML表格的方式顯示。 (垂直使用stackPanel中的自定義控件?)

集合中可能有成千上萬的對象,因此需要能夠僅顯示50個頁面並且能夠進行排序和搜索。 (使用collectionView?)

我在網上看到過類似的場景和例子,但大多數都淡化了,我不想開始這個,然後在創建基於web的解決方案時碰到一堵磚牆。

如果有人能告訴我是否可能,請指出我朝着正確的方向或突出顯示任何潛在的問題區域,這將是值得讚賞的。

謝謝。

回答

1

考慮這個示例XML文件:

XDocument doc = XDocument.Load(yourFilePath); 

然後你就可以查詢它像這樣:

var filterQuery = from i in doc.Descendants("someNode") 
        where (float)i.Element("Salary") >= 6000.00 
        orderby (string)i.Element("Name") 
        select (string)i.Element("Name"); 

<Employees> 
    <Employee ID="101"> 
    <Name>Ram</Name> 
    <Salary>5000</Salary> 
    </Employee> 
    <Employee ID="102"> 
    <Name>Siva</Name> 
    <Salary>7000</Salary> 
    ... 
</Employee> 

您可以從XML文件中像這樣加載數據

從中創建一個ObservableCollection

var filteredList = new ObservableCollection(filterQuery); 

將它綁定到您的ListView或xaml中的其他集合。

您可以在doc上實現排序和搜索邏輯,並隨時重新填充ObservableCollection,這些更改將自動反映在ListView中。