2
CSV 파일의 데이터를 표시하는 응용 프로그램을 작성하고 싶습니다.목록 상자에 동적 열 표시
나는 이것을하기 위해리스트 박스를 사용하는 것이 가장 쉽다고 생각했다.
CSV가 정의하고자하는만큼의 열을 수용하기 위해 데이터 템플릿을 정의하는 방법을 모르겠습니다. 어쩌면 목록의 항목 수에 따라 그리드의 열 수를 정의하는 방법이 있습니까?
CSV 파일의 데이터를 표시하는 응용 프로그램을 작성하고 싶습니다.목록 상자에 동적 열 표시
나는 이것을하기 위해리스트 박스를 사용하는 것이 가장 쉽다고 생각했다.
CSV가 정의하고자하는만큼의 열을 수용하기 위해 데이터 템플릿을 정의하는 방법을 모르겠습니다. 어쩌면 목록의 항목 수에 따라 그리드의 열 수를 정의하는 방법이 있습니까?
ListBox 대신 ListView를 사용하면 열에 GridView를 사용할 수 있습니다. 또는 DataGrid를 사용하여 가져 오는 데이터를 기반으로 열을 자동으로 만들 수 있습니다.이 경우 속성이 필요하지 않습니다. 비행 중에 창조하는 것이 좋다.
데이터를 배열 객체로 파싱하고 길이를 반복하여 열을 만드는 것이 좋습니다. 다음과 같은 바인딩 추가 : new Binding("[" + i + "]")
. 의 "["+ 난 + "]"를 다스 려 무엇 나는 혼란 스러워요
<ListView Name="csvLv"/>
var view = new GridView();
csvLv.View = view;
using (var reader = new StreamReader(@"PathGoesHere.csv"))
{
//This is just a sketch and all the data extraction depends on your format
var lines = reader.ReadToEnd()
.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)
.Select(x => x.Split(',')).ToArray();
var headers = lines[0];
var data = lines.Skip(1);
for (int i = 0; i < headers.Length; i++)
{
view.Columns.Add(new GridViewColumn()
{
Header= headers[i],
DisplayMemberBinding = new Binding("[" + i + "]")
});
}
csvLv.ItemsSource = data;
}
:
여기에 대략적인 윤곽입니까? – Luke
@ 루케 : 인덱서를 통해 액세스 한 i 번째 항목에 바인딩하여 각 열에 항목의 i 번째 항목을 표시합니다.이 항목은 모든 열에 대한 모든 값을 포함하는 배열입니다. –
맞아, 내가 할 수 있다고 생각해. 감사. – Luke