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.

C#
public bool TryGetValue (object item, string propertyName, out object value);

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

C#
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;
    }
}

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 à

Produit Versions
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
Windows Desktop 3.0, 3.1, 5, 6, 7