다음을 통해 공유


DataGrid.RowValidationRules 속성

정의

각 행에 있는 데이터의 유효성을 검사하는 데 사용되는 규칙을 가져옵니다.

public:
 property System::Collections::ObjectModel::ObservableCollection<System::Windows::Controls::ValidationRule ^> ^ RowValidationRules { System::Collections::ObjectModel::ObservableCollection<System::Windows::Controls::ValidationRule ^> ^ get(); };
public System.Collections.ObjectModel.ObservableCollection<System.Windows.Controls.ValidationRule> RowValidationRules { get; }
member this.RowValidationRules : System.Collections.ObjectModel.ObservableCollection<System.Windows.Controls.ValidationRule>
Public ReadOnly Property RowValidationRules As ObservableCollection(Of ValidationRule)

속성 값

각 행에 있는 데이터 유효성 검사에 사용되는 규칙입니다.

예제

다음 예에서는 개체의 StartDate 속성 값이 해당 속성 값보다 EndDate 이전인지 여부를 확인하는 를 Course 보여 ValidationRule 줍니다. 이 코드 예제는 방법: DataGrid 컨트롤을 사용하여 유효성 검사 구현 항목에 제공된 더 큰 예제의 일부입니다.

public class CourseValidationRule : ValidationRule
{
    public override ValidationResult Validate(object value,
        System.Globalization.CultureInfo cultureInfo)
    {
        Course course = (value as BindingGroup).Items[0] as Course;
        if (course.StartDate > course.EndDate)
        {
            return new ValidationResult(false,
                "Start Date must be earlier than End Date.");
        }
        else
        {
            return ValidationResult.ValidResult;
        }
    }
}
Public Class CourseValidationRule
    Inherits ValidationRule

    Public Overrides Function Validate(ByVal value As Object, _
        ByVal cultureInfo As System.Globalization.CultureInfo) _
        As ValidationResult

        Dim course As Course = _
            CType(CType(value, BindingGroup).Items(0), Course)

        If course.StartDate > course.EndDate Then
            Return New ValidationResult(False, _
                "Start Date must be earlier than End Date.")
        Else
            Return ValidationResult.ValidResult
        End If

    End Function

End Class

다음 예제에서는 XAML에서 RowValidationRules 속성을 설정합니다. 바인딩된 데이터 개체가 업데이트된 후에만 유효성 검사가 수행되도록 ValidationStep 속성이 UpdatedValue로 설정됩니다. 사용자가 종료 날짜를 시작 날짜 이전으로 지정하면 행 머리글에 빨간색 느낌표(!)가 나타납니다.

<DataGrid.RowValidationRules>
  <local:CourseValidationRule ValidationStep="UpdatedValue"/>
</DataGrid.RowValidationRules>

설명

DataGrid 컨트롤을 사용하면 셀과 행 수준 모두에서 유효성 검사를 수행할 수 있습니다. 셀 수준 유효성 검사를 사용하면 사용자가 값을 업데이트할 때 바인딩된 데이터 개체의 개별 속성 유효성을 검사합니다. 행 수준 유효성 검사를 사용하면 사용자가 행에 변경 사항을 커밋할 때 전체 데이터 개체의 유효성을 검사합니다. 사용자 지정 유효성 검사 규칙을 만들려면 클래스에서 파생되는 클래스를 ValidationRule 만들고 메서드를 구현합니다 Validate . 컬렉션에 사용자 지정 유효성 검사 규칙을 추가합니다 RowValidationRules .

사용 되는 ItemBindingGroup 경우는 속성이 RowValidationRules 무시됩니다.

적용 대상

추가 정보