BindingGroup.GetValue(Object, String) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
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.