Bagikan melalui


BindingGroup.TryGetValue(Object, String, Object) Metode

Definisi

Mencoba untuk mendapatkan nilai yang diusulkan untuk properti dan item yang ditentukan.

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

Parameter

item
Object

Objek yang berisi properti yang ditentukan.

propertyName
String

Properti yang nilai yang diusulkan untuk mendapatkan.

value
Object

Ketika metode ini kembali, berisi objek yang mewakili nilai properti yang diusulkan. Parameter ini diteruskan tanpa diinisialisasi.

Mengembalikan

true jika nilai adalah nilai yang diusulkan untuk properti yang ditentukan; jika tidak, false.

Contoh

Contoh berikut membuat kustom ValidationRule bernama ValidateDateAndPrice. Dalam metode , Validate contoh menggunakan TryGetValue metode dan Items properti untuk mendapatkan nilai yang dimasukkan pengguna ke dalam formulir. Kemudian contoh memeriksa bahwa jika item lebih dari 100 dolar, item akan tersedia setidaknya selama tujuh hari. Contoh ini adalah bagian dari contoh yang lebih besar pada BindingGroup kelas

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

Keterangan

TryGetValue false mengembalikan jika tidak ada pengikatan untuk item dan properti yang ditentukan atau jika nilai properti yang ditentukan tidak tersedia, karena kesalahan konversi atau karena aturan validasi sebelumnya gagal.

Gunakan metode ini dalam ValidationRule.Validate metode untuk mendapatkan nilai yang akan diterapkan pada sumbernya. Jenis value tergantung pada tahap di ValidationRule mana terjadi. Misalnya, jika adalah data yang TextBox terikat ke properti bilangan bulat jenis, value adalah string jika panggilan TryGetValue tersebut ValidationRule telah ValidationStep diatur ke RawProposedValue. ValidationRule Jika telah ValidationStep diatur ke ConvertedProposedValue, jenisnya adalah jenis value apa pun yang dikembalikan oleh pengonversi pengikatan. Dalam contoh ini, value biasanya bilangan bulat.

Berlaku untuk