BindingGroup.ValidationRules Property

Gets a collection of ValidationRule objects that validate the source objects in the BindingGroup.

Namespace:  System.Windows.Data
Assembly:  PresentationFramework (in PresentationFramework.dll)

Public ReadOnly Property ValidationRules As Collection(Of ValidationRule)

Property Value

Type: System.Collections.ObjectModel.Collection(Of ValidationRule)
A collection of ValidationRule objects that validate the source objects in the BindingGroup.

When a ValidationRule is added to a BindingGroup, the BindingGroup is passed in as the first parameter of the Validate method. You can get the proposed values of the object by using the TryGetValue or GetValue(Object, String) method. You can get the objects that are the sources of the bindings from the Items property.

The following example adds the custom ValidationRule, ValidateDateAndPrice, to the BindingGroup.

  <BindingGroup NotifyOnValidationError="True">
      <src:ValidateDateAndPrice ValidationStep="ConvertedProposedValue" />

The following example shows the ValidateDateAndPrice class. The Validate method uses the BindingGroup to get the values the user entered into the form, and checks that if an item is over 100 dollars, it will be available for at least seven days.

	Public Class ValidateDateAndPrice
		Inherits ValidationRule
		' Ensure that an item over $100 is available for at least 7 days.
		Public Overrides Function Validate(ByVal value As Object, ByVal cultureInfo As CultureInfo) As ValidationResult
			Dim bg As BindingGroup = TryCast(value, BindingGroup)

			' Get the source object.
			Dim item As PurchaseItem = TryCast(bg.Items(0), PurchaseItem)

            Dim doubleValue As Object = Nothing
            Dim dateTimeValue As Object = Nothing

			' Get the proposed values for Price and OfferExpires.
			Dim priceResult As Boolean = bg.TryGetValue(item, "Price", doubleValue)
			Dim dateResult As Boolean = bg.TryGetValue(item, "OfferExpires", dateTimeValue)

			If (Not priceResult) OrElse (Not dateResult) Then
				Return New ValidationResult(False, "Properties not found")
			End If

			Dim price As Double = CDbl(doubleValue)
			Dim offerExpires As Date = CDate(dateTimeValue)

			' Check that an item over $100 is available for at least 7 days.
			If price > 100 Then
				If offerExpires < Date.Today + New TimeSpan(7, 0, 0, 0) Then
					Return New ValidationResult(False, "Items over $100 must be available for at least 7 days.")
				End If
			End If

			Return ValidationResult.ValidResult

		End Function
	End Class

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5 SP1, 3.0 SP2

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
© 2014 Microsoft