2009-07-10 3 views
1

을 채우는 나의 궁극적 인 목표 ...이 XML 파일을 데리고입니다 ..비주얼 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> 

내 응용 프로그램이 시작될 때 목록보기의 구성 요소로로드 . 나는 또한 "노래"가 아티스트 또는 장르에 의해 카테고리로 분리되기를 원합니다.

나는 비주얼 C# 새로운 해요,하지만 난 잠시 동안 코딩 봤는데, 그래서 정말 그냥

구글 그것을 보면서 ... 여기에 올바른 방향으로 날 가리 사람을 찾고 있어요 사람들이 XML 파일을 읽고 내용을 반복하여 목록보기 구성 요소를 채우는 것처럼 보입니다. "데이터 세트"와 "바인딩 소스"가 모두 존재한다는 것은 계산에 비실용적입니다. XML 파일을 데이터 세트에로드 한 다음 바인딩 소스를 데이터 세트에 연결 한 다음 마지막으로 바인딩 소스 (또는이 라인을 따라 무언가)에 listview를 연결하는 방법이있는 것 같습니다. 이 작업을 수행 할 구성 요소에 대한 "setter"메서드를 찾지 못하는 것 같습니다. 이러한 구성 요소의 "속성"창을 위아래로 보았습니다.

+0

사용중인 WinForms 또는 WPF 태그를 추가하십시오. – Oskar

답변

3

, 당신은 다음과 같은 일을 할 수 있습니다 .

+0

안녕하세요, Andreas 저는 Treelistview에 동일한 XML 파일을로드하려고합니다. 이미 동일한 질문 스택을 게시했습니다. http://stackoverflow.com/questions/42923047/bind-xml-file-to-treelistiview-in-objectlistview – John

1

아무런 문제가 없습니다 - System.Data.DataSet.ReadXml()을 보면 XML 데이터가 DataSet에로드됩니다.

빠른 검사 : 당신은 몇 가지 컨트롤의 .DataSource 속성에 myTable을 지정해야합니다

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 

.

지금
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(); 

당신이 당신의 ListView의 템플릿 (방금 반환되는 익명 형식에서) 세 개의 필드를 사용할 수 있으며 데이터가 표시됩니다 Linq to XML

0

ObjectListView에는 .NET ListView (WinForms)의 데이터 바인딩 가능 버전 인 DataListView가 있습니다. ObjectListView는 또한 아티스트 또는 장르별로 그룹으로 분류하거나 목록을 표시하는 다른 정보를 자동으로 처리합니다.

오픈 소스 프로그램 LyricsFetcher은 XML에서 전체 iTunes 라이브러리를 읽고 ObjectListView를 사용하여 노래를 표시합니다. 10,000+를로드하고 이러한 방식으로 보여주는 것은 중급 랩톱에서 1 초 미만입니다.

+0

안녕하세요 Grammarian 나는 Treelistview에 어떤 XML을로드하고 싶은가? .i 이미 같은 질문을 게시했습니다. http://stackoverflow.com/questions/42923047/bind-xml-file-to-treelistiview- 인 - 오브젝트리스트 뷰 – John

관련 문제