BindingGroup.TryGetValue(Object, String, Object) Metódus

Definíció

Megkísérli lekérni a megadott tulajdonság és elem javasolt értékét.

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éterek

item
Object

A megadott tulajdonságot tartalmazó objektum.

propertyName
String

Az a tulajdonság, amelynek a javasolt értéke lekérendő.

value
Object

Amikor ez a metódus visszatér, egy objektumot tartalmaz, amely a javasolt tulajdonságértéket jelöli. Ez a paraméter nem inicializálva lesz átadva.

Válaszok

trueha az érték a megadott tulajdonság javasolt értéke; egyéb esetben. false

Példák

Az alábbi példa létrehoz egy egyéni ValidationRule nevet ValidateDateAndPrice. A metódusban a Validate példa a TryGetValue metódust és a Items tulajdonságot használja a felhasználó által az űrlapba beírt értékek lekérésére. Ezután a példa ellenőrzi, hogy ha egy elem több mint 100 dollár, akkor legalább hét napig elérhető lesz. Ez a példa az osztály egy nagyobb példájának BindingGroup része

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

Megjegyzések

TryGetValue akkor adja false vissza, ha nincs kötés a megadott elemhez és tulajdonsághoz, vagy ha a megadott tulajdonság értéke nem érhető el konverziós hiba vagy egy korábbi érvényesítési szabály meghiúsulása miatt.

Ezzel a ValidationRule.Validate módszerrel lekérheti a forráshoz lekérni kívánt értéket. A típus value attól függ, hogy a szakasz melyik ValidationRule szakaszában történik. Ha például egy TextBox adat egy egész típusú tulajdonsághoz van kötve, akkor egy karakterlánc, value ha a ValidationRule hívás TryGetValueValidationStepRawProposedValueértéke a következő. Ha a ValidationRuleValidationStep kötés értéke ConvertedProposedValuea következő, a típus value bármilyen típusú, amelyet a kötés konvertere ad vissza. Ebben a példában value általában egész szám.

A következőre érvényes: