BindingGroup.TryGetValue(Object, String, Object) 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.
Tente d'obtenir la valeur proposée pour la propriété et l'élément spécifiés.
public:
bool TryGetValue(System::Object ^ item, System::String ^ propertyName, [Runtime::InteropServices::Out] System::Object ^ % value);
public bool TryGetValue (object item, string propertyName, out object value);
member this.TryGetValue : obj * string * obj -> bool
Public Function TryGetValue (item As Object, propertyName As String, ByRef value As Object) As Boolean
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.
- value
- Object
Lorsque cette méthode est retournée, contient un objet qui représente la valeur de propriété proposée. Ce paramètre est passé sans être initialisé.
Retours
true
si la valeur est la valeur proposée pour la propriété spécifié ; sinon, false
.
Exemples
L’exemple suivant crée un nom ValidateDateAndPrice
personnalisé ValidationRule . Dans la Validate méthode, l’exemple utilise la TryGetValue méthode et la Items propriété pour obtenir les valeurs entrées par l’utilisateur dans le formulaire. L’exemple vérifie ensuite que si un article est supérieur à 100 dollars, il sera disponible pendant au moins sept jours. Cet exemple fait partie d’un exemple plus large sur la BindingGroup classe
public class ValidateDateAndPrice : ValidationRule
{
// Ensure that an item over $100 is available for at least 7 days.
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
BindingGroup bg = value as BindingGroup;
// Get the source object.
PurchaseItem item = bg.Items[0] as PurchaseItem;
object doubleValue;
object dateTimeValue;
// Get the proposed values for Price and OfferExpires.
bool priceResult = bg.TryGetValue(item, "Price", out doubleValue);
bool dateResult = bg.TryGetValue(item, "OfferExpires", out dateTimeValue);
if (!priceResult || !dateResult)
{
return new ValidationResult(false, "Properties not found");
}
double price = (double)doubleValue;
DateTime offerExpires = (DateTime)dateTimeValue;
// Check that an item over $100 is available for at least 7 days.
if (price > 100)
{
if (offerExpires < DateTime.Today + new TimeSpan(7, 0, 0, 0))
{
return new ValidationResult(false, "Items over $100 must be available for at least 7 days.");
}
}
return ValidationResult.ValidResult;
}
}
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
Remarques
TryGetValue retourne false
s’il n’existe pas de liaison pour l’élément et la propriété spécifiés ou si la valeur de la propriété spécifiée n’est pas disponible, en raison d’une erreur de conversion ou d’une erreur de validation antérieure.
Utilisez cette méthode dans la ValidationRule.Validate méthode pour obtenir la valeur à commiter dans la source. Le type value
dépend de la phase à laquelle le ValidationRule type se produit. Par exemple, si une TextBox donnée est liée à une propriété de type entier, value
est une chaîne si l’appel TryGetValue ValidationRule a sa ValidationStep valeur définie RawProposedValuesur . Si la ValidationRule valeur est définie ValidationStep ConvertedProposedValue, le type de value
type est quel que soit le type retourné par le convertisseur de la liaison. Dans cet exemple, value
il s’agit généralement d’un entier.