2009-07-10 13 views
1

を移入私の究極の目標...このxmlファイルを取るためには..ですのVisual C#2008、XMLファイルを読み込み、リストビューここ

<?xml version="1.0"?> 
<Songs> 
    <Song> 
     <Name>Star Spangled Banner</Name> 
     <Artist>Francis Scott Key</Artist> 
     <Genre>Patriotic</Genre>  
    </Song> 
    <Song> 
     <Name>Blankity Blank Blank</Name> 
     <Artist>Something Something</Artist> 
     <Genre>Here here</Genre> 
    </Song> 
</Songs> 

と私のアプリケーションの起動時に、リストビューコンポーネントにロード。私はまた、 "歌"をアーティストまたはジャンルのいずれかのカテゴリーに分けたいと思っています。

は、私は、Visual C#に新しいんだけど、私はしばらくの間、コード化してきたので、私は本当にただ

はGoogleのそれを探しています...ここでは正しい方向に私を指すように誰かを探していますXMLファイルを読んで内容をループしてリストビューコンポーネントを作成するように見えるようです。これは、これらの "データセット"と "バインディングソース"のすべてが利用可能であることをカウントするのは現実的ではないようです。 XMLファイルをデータセットにロードし、バインディングソースをデータセットにリンクし、最後にリストビューをバインディングソース(またはこれらのラインに沿ったもの)にリンクする方法があるようです。これを行うこれらのコンポーネントのいずれかに「セッター」メソッドがあるように見えますが、これらのコンポーネントの「プロパティ」ウインドウをうまく検索しても成功しません。

+0

これまで使用していたWinFormsまたはWPFタグを追加してください。 – Oskar

答えて

3

、次のような何かすることができます:今、あなたのListViewのテンプレートに(あなただけ返さ匿名型からの)三つのフィールドを使用することができますし、あなたのデータが表示されます

XDocument loaded = XDocument.Load("myfile.xml"); 

var songs = from x in loaded.Descendants("Song") 
select new 
{ 
    Name = x.Descendants("name").First().Value, 
    Category = x.Descendants("artist").First().Value, 
    Genre = x.Descendants("genre").First().Value, 
}; //Returns an anonymous custom type 

MyListView.DataSource = songs; MyListView.DataBind(); 

を。

+0

こんにちはAndreas私はTreelistviewに同じXMLファイルをロードしたいと思っています.iはすでに同じ質問スタックを投稿していますhttp://stackoverflow.com/questions/42923047/bind-xml-file-to-treelistiview-in-objectlistview – John

1

問題ありません - System.Data.DataSet.ReadXml()を参照してください。にXMLデータが読み込まれます。

クイックチェック:

DataSet mySet = new DataSet(); 
mySet.LoadXml("myfile.xml"); 
myTable = mySet.Tables[0]; 
myCols = myTable.Columns; 
Console.Writeline("Column Names: {0}, {1}, {2}", 
    myCols[0].ColumnName, myCols[1].ColumnName, myCols[2].ColumnName); 

... result ... 
Column Names: Name, Artist, Genre 

あなたは、いくつかのコントロールのプロパティに.DataSourcemyTableを割り当てる必要があります。 Linq to XML

0

ObjectListViewには、.NET ListView(WinForms)のデータバインディングバージョンであるDataListViewがあります。 ObjectListViewは、アーティストやジャンル別、またはリストに表示されているその他の情報のグループ化を自動的に処理します。

オープンソースプログラムLyricsFetcherは、XMLライブラリ全体をXMLから読み取り、ObjectListViewを使用して曲を表示します。 10,000+を読み込んで、この方法で表示するのは、ミッドレンジのラップトップでは1秒未満です。

+0

こんにちはGrammarian私はTreelistviewにどのようなアイデアを行う必要があります同じXMLファイルをロードしたい。私はすでに同じhttp://stackoverflow.com/questions/42923047/bind-xml-file-to-treelistiview-インオブジェクトリストビュー – John

関連する問題