■ GridColumn 클래스의 Validate 이벤트를 사용해 컬럼 값을 검증하는 방법을 보여준다.
▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
using System; using DevExpress.Xpf.Grid; ... #region 단가 그리드 컬럼 값 검증하기 - unitPriceGridColumn_Validate(sender, e) /// <summary> /// 단가 그리드 컬럼 값 검증하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void unitPriceGridColumn_Validate(object sender, GridCellValidationEventArgs e) { Product product = e.Row as Product; if(product == null) { return; } bool discontinued = product.Discontinued; if(discontinued) { double newValue = Convert.ToDouble(pGridCellValidationEventArgs.Value ); double cellValue = Convert.ToDouble(pGridCellValidationEventArgs.CellValue); double discount = 100d - (newValue * 100) / cellValue; if(!(e.IsValid = dDiscount > 0 && discount <= 30d)) { e.ErrorType = DevExpress.XtraEditors.DXErrorProvider.ErrorType.Critical; if(discount < 0) { e.ErrorContent = string.Format ( "The price cannot be greater than ${0}", Convert.ToDouble(e.CellValue) ); return; } e.ErrorContent = string.Format ( "The discount cannot be greater than 30% (${0}). Please correct the price.", Convert.ToDouble(e.CellValue) * 0.7 ); } } } #endregion |
※ 코드로 셀 값 변경시 상기 이벤트가 발생되지 않는다.