! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

[WPF] 일정 조건에 해당하거나 값이 변경될때의 CELL 색 변경 문의 > Q&A | 토론

본문 바로가기

ComponentOne

Q&A | 토론 - WPF

WPF [WPF] 일정 조건에 해당하거나 값이 변경될때의 CELL 색 변경 문의

페이지 정보

작성자 chany 작성일 2022-08-24 15:21 조회 1,988회 댓글 1건
제품 버전 : 4.5.2
컨트롤 이름 : C1Flexgrid

본문

안녕하세요 


VS2017, ComponentOne 4.5.2, C1FlexGrid를 사용하여 개발중에 있습니다.

궁금한 점이 있어 문의드립니다. 


FlexGrid Itemssource에 최초로 등록되는 리스트 변수를 임시 변수에 담아 놓고 

FlexGrid에 CellEditEnded 이벤트 발생 시 해당 셀의 값과 임시변수에 담아놓은 값과 비교하여 

다르면 분홍색으로 셀 색을 변경하려합니다. (추후, 색이 변경된 셀만 db 혹은 외부 저장 기능을 위함)


위 기능에 대한 간단한 샘플코드 부탁드립니다. 


DataGrid는 Style을 사용하여 cell, row, column을 수정 가능 한 것으로 보입니다.

다만, FlexGrid는 CellFactory Class를 상속받는 class를 생성하여 style을 지정하는 것으로 보입니다.

가이드에는 조건이나 이벤트 상관없이 최초 생성 시 스타일을 변경하는 샘플만 나와있어 문의드립니다.


CellFactory Class를 상속받아 생성한 class를 통해 실시간 변경되는 내용을 반영 할 수 있는 것으로 알고 있는데 맞는지요?

  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

chany님의 댓글

chany 작성일

추가로 ApplyCellStyles 메서드의 파라미터중 Border를 flexgrid의 어떤 속성 혹은 필드값을 넣어야하는지요?
CellType은 CellType.Cell, CellRange는 CellEditEventArgs.CellRange로 넣었고
border는 무엇을 넣을지 몰라 new System.Windows.Controls.Border()를 넣었습니다.

2 답변

WPF Re: [WPF] 일정 조건에 해당하거나 값이 변경될때의 CELL 색 변경 문의

추천1 이 글을 추천하셨습니다 비추천0

페이지 정보

작성자 GCK폴 작성일 2022-09-02 17:04 댓글 1건

본문

첨부파일

안녕하세요 그레이프시티입니다.


먼저 늦게 회신드려 죄송합니다.


1. CellEditEnded를 사용하고 편집된 셀의 값을 ItemsSource의 첫 번째 개체와 비교할 수 있습니다. 예를 들면 아래와 같습니다. 


private void Flexgrid_CellEditEnded(object sender, CellEditEventArgs e)

{    

if((e.Column==0 && (string)flexgrid[e.Row, e.Column] != _firstStore.Id) || (e.Column==1 && (string)flexgrid[e.Row, e.Column] != _firstStore.Name))   

{       

_userCellFactory.AddCell((e.Row, e.Column));    

}    

else if ((e.Column == 0 && (string)flexgrid[e.Row, e.Column] == _firstStore.Id) || (e.Column == 1 && (string)flexgrid[e.Row, e.Column] == _firstStore.Name))    

{        

_userCellFactory.RemoveCell((e.Row, e.Column));    

}

}


2. System.Windows.Controls.Border()를 사용하여 보더를 만들면 미리 구현된 셀 보더의 특성이 제거되어 일부 충돌이 발생할 수 있습니다.

따라서 CellFactory의 ApplyCellStyles 메서드를 사용하여 색상이 변경하도록 Border의 Background 속성을 설정하는 것이 좋습니다.


간단한 샘플 프로젝트를 첨부드리니 참고해 주시기 바랍니다.


추가로 궁금하신 사항이 있다면 다시 말씀해 주시기 바랍니다. 

감사합니다,

그레이프시티 드림 

댓글목록

chany님의 댓글

chany 작성일

샘플은 비교대상이 첫번째 행으로 고정되어있습니다. 
저는 비교대상을 같은 행에 변경 전/후의 값을 비교하려합니다. 
itemsSource에 들어갈 Collection을 따로 임시변수로 저장하여 비교하려했으나 
값을 변경하고 임시변수를 호출할때 변경된 값으로 출력됩니다.
현재 방법을 찾아보고 있는중입니다. 

WPF Re: [WPF] 일정 조건에 해당하거나 값이 변경될때의 CELL 색 변경 문의

추천0 이 글을 추천하셨습니다 비추천0

페이지 정보

작성자 chany 작성일 2022-09-05 20:25 댓글 0건

본문

첨부파일

GCK폴님 항상 감사합니다.

위 댓글에 남긴 부분까지는 해결했습니다. (수정한 샘플코드 첨부)

다만, 색이 변경되고나서 색이 변경된 행만 뽑아내어 데이터를 저장하려는 행위를 하려합니다.

배경색으로 제어가 가능할지 문의드립니다.


현재 대안으로는 색이 변경되는 조건에 행 전체를 담을 수 있는 임시 컬렉션 혹은 리스트를 생성할까 생각중입니다.

반대로 색이 원복되면 임시컬렉션에 있는 행을 삭제하고 저장 시 초기화하는 로직을 생각하고 있습니다.


댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.