Microsoft MVP성태의 닷넷 이야기
wpf에서 대량 데이터 보여주는 방법 추천 부탁드립니다. [링크 복사], [링크+제목 복사],
조회: 5940
글쓴 사람
victor (jys923 at gmail.com)
홈페이지
첨부 파일
 

기획 중인 wpf 프로그램입니다.

1000건이상 데이터를 서버에서 조회 해서 보여줍니다. 텍스트만 입니다.

스크롤 뷰로 구현 했습니다. 처음 로딩 할떄 지연시간이 발생했습니다.

사용자는 지연시간이 없었으면 합니다.

그래서

페이징을 생각했습니다.

사용자는 어쩔수 없다면 페이징을 하는데

되도록이면 엑셀처럼 보고 싶다고 합니다.


방법을 찾고 있는중입니다.

질문 1. 스크롤 뷰에서 대량 데이터 지연시간 없이 보여 줄수있나요?

질문 2. 페이징을 할때 추천 하시는 방법 알려주세요.


그동안 큰도움 받아왔습니다. 감사합니다.

오래간만에 왔는데 로그인이 생겼네요 ㅎㅎ








[최초 등록일: ]
[최종 수정일: 2/6/2024]


비밀번호

댓글 작성자
 



2024-02-06 02시07분
[답변 1] 글쎄요, 1,000건이면 그다지 큰 수의 데이터는 아닌데, 그렇다면 개별 데이터의 크기가 큰 건가요? 만약 그렇다면 [답변 2]에 해당하는 방법을 쓰는 수밖에 없습니다.

[답변 2] 혹시 가능하다면 ListView로 처리해 보는 것은 어떨까요? 각 항목을 1,000건의 DataItem으로 보고 TextBox로 매핑하면 될 듯한데요, 그런 경우라면 ListView 자체의 virtualization 처리를 이용하면 그런대로 부드럽게 처리가 될 수 있을 것입니다. 만약, 단순히 TextBox 하나로 해야 한다면, 이런 경우 상용 컨트롤을 쓰거나 아니면 Rich Text 컨트롤 등을 사용해 보는 것도 좋을 것입니다. 검색해 보면 AvalonEdit도 대용량 텍스트 파일에 최적화되었다고 한번 고려해 보세요.

Using AvalonEdit (WPF Text Editor)
; https://www.codeproject.com/Articles/42490/Using-AvalonEdit-WPF-Text-Editor

그런데, 질문하신 경우에서는 지연 시간이 어떻게 나오는지도 확인해 봐야 할 것입니다. 단순히 1,000 건 조회를 하는 동작 자체가 지연이 있는 것인지, 그렇게 가져온 데이터를 TextBox에 매핑하는 데 지연이 있는 것인지, 어느 쪽이냐에 따라 개선할 방법이 달라집니다.

이와 관련해서, 사용자의 지연 시간이라는 것이, UI 스레드를 데이터 바인딩에 사용하느라 멈춰있는 것을 지연이라 생각하는 것인지, 아니면 UI 멈춤 현상은 없는데 시간이 길게 걸려서 지연이라고 느끼는 것인지 판별해야 합니다.

-----------------------------------

이것도 참고하세요.

Building a large text file editor
; https://www.sysnet.pe.kr/2/1/1166
정성태

[1]  2  3  4  5  6  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
5953Roya10/4/2024199c# com host dll을 c++에서 사용할 때, sdk 관련 runtime 을 설치 안하고 제공할수 있을까요?? [1]
5952우광현9/5/20241420서버용 소켓 포트 동적포트 적용시 클라이언트가 호출하는 방법? [2]
5951Kun ...8/21/20241247c++에서 복합데이터 Struct를 .NET Framework에서 구현할 수 있는 방법이 있을까요? [2]
5950SunN...8/18/20241579정석대로 한다면 response.Close() 해야되는지요? [4]
5949SunN...8/16/20241658SqlConnection Open()에서 에러가나면 Close()하는 시점 [3]
5948SunN...8/14/20241718WebRequestMethods.Ftp.MakeDirectory 해제 [3]
5947Roya8/7/20242070c# dll을 cpp lib에서 사용을 할려고 하는데요. CoCreateInstance 에서 지정된 파일을 찾을수 없다고 나오는대요. [4]
5946SunN...8/5/20242184TaskDefinition 에서 사용저가로그온상관없이실행 [3]파일 다운로드1
5945SunN...8/3/20242017윈도우 작업스케줄러 [1]
5944roya8/1/20242079C# dll을 C++ 프로젝트에서 사용을 하고 싶은데, 레지스트리 등록 없이 가능한걸까요?? [2]
5943SunN...8/1/20241993윈도우C#에서 리눅스FTP로 업로드 및 리눅스에 폴더생성(WindowsOS에서C#으로) [3]
5942vict...7/24/20242200dll 을 c#에서 쓰고 싶습니다 [1]
5941vict...7/17/20243235DependencyObject와 같은 스레드에서 DependencySource를 만들어야 합니다. 오류 [2]
5940ckm7/16/20243586선생님 안녕하세요 async await 교착 관련 질문입니다 [1]
5939괴물신인7/9/20243376템플릿 대체할수있는방법이 있을까요? [6]
5938씨제바보7/5/20242601책 질문드립니다. [1]
5937Thor... donator5/27/20243714C# 12 는 전자책이 언제쯤 나오게 될까요? [1]
5936ds4/26/20244787활성화 되어 있는 커뮤니티 발견하게 되어 기분이 좋습니다. 자주 놀러 올께요. (내용 없습니다. [2]
5935양승조 donator4/25/20244835Reflection 관련 질문 드립니다. [5]파일 다운로드1
5934양승조 donator4/24/20243790Reflection 관련 질문 드립니다. [1]
5933vict...4/23/20243777cpp 라이브러리 디버깅 방법 문의 드립니다. [1]
5932EK4/12/20243834다음 제네릭에서 널익셉션이 뜨는 이유를 알수있을까요? [1]
5931이대희4/2/20244127Windows 앱 SDK C# 템플릿의 용도가 무엇인지요? [1]
5930vict...2/22/20245514ef core, FromSqlRaw 맵핑 질문입니다. [4]
5929a2/17/20244985.Net 8 에서 디버거 변경 [1]
[1]  2  3  4  5  6  7  8  9  10  11  12  13  14  15  ...