DataGrid.RowValidationRules プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
各行のデータを検証するために使用される規則を取得します。
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)
プロパティ値
各行のデータを検証するために使用される規則。
例
次の例では、 ValidationRule オブジェクトの StartDate
プロパティ値がそのプロパティ値 Course
よりも EndDate
前であるかどうかを確認する を示します。 このコード例は、「 方法: 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 プロパティは無視されます。
適用対象
こちらもご覧ください
.NET