Partager via


BindingGroup.TryGetValue(Object, String, Object) Méthode

Définition

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

Boolean

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 ValidateDateAndPricepersonnalisé 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.

S’applique à