2011-11-16 3 views
3

이 같은 것이 가능합니까?WPF 그리드 컨트롤을 CSV 파일에 데이터 바인딩

현재 CSV 파일을 WPF DataGrid로 직접 읽으려고합니다. 파일에 알려진 형식이 없습니다. 즉, 해당 필드가 무엇인지 또는 얼마나 많은지 알 수 없습니다. 필자는 그리드 형식으로 전체 파일에 표시하려고합니다 (CSV 파일을 열 때 Excel이하는 것과 비슷한 방식으로).

+0

는 항상해야합니까 머리글 행 Binding a ListView to a Data Matrix (솔루션 같은 수 woudl 있도록 의 ListView뿐만 아니라 ItemsControl에있다) :

나는 이것이 당신이 뭘 하려는지 꽤 가까운 예를 믿는다? – user7116

+0

해결책을 제공 할 수 있다면 가질 수 있습니다. –

+0

더 많은 csv 읽기/쓰기 문제가 있습니다. 구문 분석 기능을 사용하는 즉시 페이징을 구현하는 것이 훨씬 쉬울 것입니다. –

답변

0

저는 DataGrid의 WPF 변형에 익숙하지 않지만, 일반적인 .NET DataGrid 및 DataGridView 컨트롤에 익숙하지 않습니다. 이 컨트롤이 비슷한 방식으로 작동한다고 가정하면 csv 파일을 열고 라인을 한 줄씩 읽거나 탭이나 쉼표로 나누어서 DataTable에 데이터를 던지면됩니다. 거기에서 DataGrid 컨트롤의 DataSource를 DataTable로 설정하거나 사용자 지정 서식 지정 /보기가 필요한 경우 DataView를 만들고 Refresh() 메서드를 호출 할 수 있습니다.

0

DataGrid는 ItemsControl 컨트롤을 기반으로하며 항목은 ItemsControl.ItemsSource whioch 유형이 IEnumerable입니다. 따라서 단순히 DataGrid에 CSV를 표시하려면 IEnumerable을 구현하는 모든 데이터 구조에서 CSV를 읽은 다음 XAML에서 바인딩하는 코드를 통해 DataGrid.ItemsSource 속성으로 설정해야합니다. 따라서 그리드에는 전체 CSV 파일 행을 나타내는 단일 열이 있습니다. 별도의 열에 각 값을 표시하려면 IEnumerable 데이터 구조 (각 숫자는 IList<>)는 IEnumerable을 나타내야합니다. 기본적으로 IList<IEnumerable<object>>입니다.

로컬 데이터 구조에서 CSV를 읽으려면 CSV를 구문 분석 한 후 가끔 까다로운 일을하기보다는 일부 무료 CSV 파싱 라이브러리를 사용하는 것이 좋습니다. 케이스는 KBCsv library을보십시오.