[C#] DataGrid로 표 형태의 데이터를 다뤄보자

2024. 7. 29. 21:25C#

728x90
반응형

 안녕하세요. 진득코딩입니다. 이번 시간에는 도구 상자들 중에서 표 형태의 데이터를 다룰 때 사용하면 유용한 DataGrid에 대해서 살펴보도록 하겠습니다.

DataGrid 살펴보기

 DataGrid는 표 형태의 데이터를 표현하기 위한 도구입니다. 도구 상자에서 DataGrid를 Drag&Drop해서 사용할 수 있습니다.

 XAML 코드를 확인하시면 DataGrid 태그가 추가된 것을 확인할 수 있습니다. 해당 화면에서 필요한 컬럼을 각각 추가하고 태그의 내용을 입력해줍니다.

 DataGrid에는 유용한 두 가지 옵션이 있습니다. AutoGenerateColumns 옵션을 켜게 되면 DataGrid로 데이터가 입력되게 되면 자동으로 컬럼을 생성해주는 기능입니다. 두 번째 옵션은 CanUserAddRows 옵션으로 해당 옵션을 켜게 되면 사용자가 직접 표에 컬럼을 추가할 수 있게 됩니다.

 .cs로 데이터를 추가할 때에는 List를 생성해서 각각의 데이터를 넣어주고 getter, setter를 추가해서 넣어주게 됩니다. DataGrid에 리스트를 추가할 때에는 .ItemsSource를 사용해서 넣어주게 됩니다.

 리스트를 DataGrid에 추가한 모습입니다. 해당 화면은 위에서 언급한 AutoGenerateColumns 옵션과 CanUserAddRows옵션을 모두 False 처리한 상태입니다. 

 DataGrid에서 원하는 값을 가져올 때에는 gettersetter를 불러와서 .(컬럼 이름)을 사용하여 가져오게 됩니다. 여러 개의 행이 선택된 경우에는 foreach문을 사용하여 가져오면 됩니다.

DataGrid로 실습하기

 굉장히 유용한 도구인 DataGrid를 사용하여 간단한 애플리케이션을 만들어보도록 하겠습니다. 그냥 리스트에 있는 단순한 데이터를 가져다가 쓰는 것이 아닌 CSV 파일을 활용하여 데이터를 가져오는 애플리케이션을 만들어보겠습니다.

 처음에 애플리케이션을 켜게 되면 나오는 화면입니다. 두 개의 버튼과 1개의 라벨로 상단 화면을 구성하고 있습니다. 밑에는 Data Grid로 3개의 컬럼으로 구성되어 있습니다.  

 FileOpen 버튼을 누르게 되면 위와 같이 FileDialog가 나오게 되고 CSV 파일을 선택할 수 있도록 해두었습니다.

 CSV 파일을 선택하게 되면 File path 라벨이 해당 파일의 경로로 바뀌게 되고 DataGrid에는 CSV 파일에 있던 데이터들이 출력되게 됩니다.

 원하는 데이터를 클릭한 상태에서 Get Data를 선택하게 되면 해당 컬럼의 이름이 MessageBox에 출력되도록 코드를 짜보았습니다.

애플리케이션 코드 살펴보기

 해당 애플리케이션의 코드를 살펴보도록 하겠습니다. DataGrid에 들어가는 데이터들을 담는 list를 먼저 선언 및 초기화해주고 class를 만들어서 getter와 setter를 만들어주었습니다.

 fileOpen 버튼을 누르는 이벤트에는 먼저 OpenFileDialog를 new해주고 다중 데이터도 선택할 수 있도록 true로 해주었지만 어차피 한 가지 CSV 파일만 사용할 것이기 false로 두어도 됩니다. Filter에는 csv 파일 또는 모든 파일을 선택할 수 있도록 설정해주었고 처음에 Dialog가 켜지는 위치를 내 문서로 설정해두었습니다. Dialog가 켜지게 되면 해당 파일이름을 seletedFile에 담도록 코드를 구성하였습니다.

 파일을 읽어오는 과정 자체를 try-catch로 파싱하였고 while문을 이용하여 모든 데이터를 불러오도록 하였습니다. 해당 파일은 CSV 파일이기 때문에 ,를 기준으로 Split하여 데이터들이 뽑아냈습니다.

 getData 버튼을 누르게 되면 foreach문으로 선택된 모든 데이터들을 불러오도록 하였습니다. 불러온 데이터들을 MessageBox에 출력하도록 하였습니다. if문으로 데이터가 선택되지 않았을 때의 예외처리를 위해서 if문을 사용하여 MessageBox를 출력하고 바로 return되도록 코드를 작성하였습니다.


 이번 시간에는 표를 이용한 데이터를 다룰 때 유용한 DataGrid에 대해서 살펴보았습니다. CSV 파일을 이용하여 불러오는 등 여러 가지로 활용한다면 굉장히 유용하게 사용될 것 같습니다. 이번 포스팅은 여기까지입니다. 끝까지 봐주셔서 감사합니다.😀

728x90
반응형
LIST