Partager via


BindingGroup.GetValue(Object, String) Méthode

Définition

Retourne la valeur proposée pour la propriété et l'élément spécifiés.

public:
 System::Object ^ GetValue(System::Object ^ item, System::String ^ propertyName);
public object GetValue (object item, string propertyName);
override this.GetValue : obj * string -> obj
Public Function GetValue (item As Object, propertyName As String) As Object

Paramètres

item
Object

Objet qui contient la propriété spécifiée.

propertyName
String

Propriété dont la valeur proposée doit être obtenue.

Retours

Object

Valeur de propriété proposée.

Exceptions

Il n'y a pas de liaison pour l'élément et la propriété spécifiés.

La valeur de la propriété spécifiée n'est pas disponible, en raison d'une erreur de conversion ou car une règle de validation antérieure a échoué.

Exemples

L’exemple suivant fait partie d’une application qui invite l’utilisateur à entrer plusieurs clients et à affecter un représentant commercial à chaque client. L’application vérifie que le représentant commercial et le client appartiennent à la même région. L’exemple montre la Validate méthode, qui utilise la GetValue(Object, String) méthode pour obtenir les valeurs entrées par le client.

public class AreasMatch : ValidationRule
{
    public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
    {
        BindingGroup bg = value as BindingGroup;
        Customer cust = bg.Items[0] as Customer;
        
        if (cust == null)
        {
            return new ValidationResult(false, "Customer is not the source object");
        }

        Region region = (Region)bg.GetValue(cust, "Location");
        ServiceRep rep = bg.GetValue(cust, "ServiceRepresentative") as ServiceRep;
        string customerName = bg.GetValue(cust, "Name") as string;

        if (region == rep.Area)
        {
            return ValidationResult.ValidResult;
        }
        else
        {

            StringBuilder sb = new StringBuilder();
            sb.AppendFormat("{0} must be assigned a sales representative that serves the {1} region. \n ", customerName, region);
            return new ValidationResult(false, sb.ToString());
        }
    }
}
Public Class AreasMatch
    Inherits ValidationRule
    Public Overrides Function Validate(ByVal value As Object, ByVal cultureInfo As System.Globalization.CultureInfo) As ValidationResult
        Dim bg As BindingGroup = TryCast(value, BindingGroup)
        Dim cust As Customer = TryCast(bg.Items(0), Customer)

        If cust Is Nothing Then
            Return New ValidationResult(False, "Customer is not the source object")
        End If

        Dim region As Region = CType(bg.GetValue(cust, "Location"), Region)
        Dim rep As ServiceRep = TryCast(bg.GetValue(cust, "ServiceRepresentative"), ServiceRep)
        Dim customerName As String = TryCast(bg.GetValue(cust, "Name"), String)

        If region = rep.Area Then
            Return ValidationResult.ValidResult
        Else

            Dim sb As New StringBuilder()
            sb.AppendFormat("{0} must be assigned a sales representative that serves the {1} region. " & vbLf & " ", customerName, region)
            Return New ValidationResult(False, sb.ToString())
        End If
    End Function
End Class

Remarques

Utilisez cette méthode dans la ValidationRule.Validate méthode pour obtenir la valeur à commiter dans la source. Le type de la valeur de retour dépend de l’étape à laquelle le ValidationRule résultat se produit. Par exemple, si une TextBox donnée est liée à une propriété de type entier et que l’appel ValidationRule GetValue(Object, String) a sa ValidationStep valeur définie RawProposedValue, la méthode retourne une chaîne. Si la ValidationRule valeur est ValidationStep définie ConvertedProposedValue, la méthode retourne le type retourné par le convertisseur de la liaison. Dans cet exemple, GetValue(Object, String) retourne généralement un entier.

S’applique à