BindingGroup.GetValue(Object, String) Metod

Definition

Returnerar det föreslagna värdet för den angivna egenskapen och objektet.

public:
 System::Object ^ GetValue(System::Object ^ item, System::String ^ propertyName);
public object GetValue(object item, string propertyName);
override this.GetValue : obj * string -> obj
Public Function GetValue (item As Object, propertyName As String) As Object

Parametrar

item
Object

Objektet som innehåller den angivna egenskapen.

propertyName
String

Egenskapen vars föreslagna värde ska hämtas.

Returer

Det föreslagna egenskapsvärdet.

Undantag

Det finns ingen bindning för det angivna objektet och egenskapen.

Värdet för den angivna egenskapen är inte tillgängligt på grund av ett konverteringsfel eller på grund av att en tidigare verifieringsregel misslyckades.

Exempel

Följande exempel är en del av ett program som uppmanar användaren att ange flera kunder och tilldela en säljare till varje kund. Programmet kontrollerar att försäljningsrepresentanten och kunden tillhör samma region. Exemplet visar metoden Validate , som använder GetValue(Object, String) metoden för att hämta värden som kunden har angett.

public class AreasMatch : ValidationRule
{
    public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
    {
        BindingGroup bg = value as BindingGroup;
        Customer cust = bg.Items[0] as Customer;
        
        if (cust == null)
        {
            return new ValidationResult(false, "Customer is not the source object");
        }

        Region region = (Region)bg.GetValue(cust, "Location");
        ServiceRep rep = bg.GetValue(cust, "ServiceRepresentative") as ServiceRep;
        string customerName = bg.GetValue(cust, "Name") as string;

        if (region == rep.Area)
        {
            return ValidationResult.ValidResult;
        }
        else
        {

            StringBuilder sb = new StringBuilder();
            sb.AppendFormat("{0} must be assigned a sales representative that serves the {1} region. \n ", customerName, region);
            return new ValidationResult(false, sb.ToString());
        }
    }
}
Public Class AreasMatch
    Inherits ValidationRule
    Public Overrides Function Validate(ByVal value As Object, ByVal cultureInfo As System.Globalization.CultureInfo) As ValidationResult
        Dim bg As BindingGroup = TryCast(value, BindingGroup)
        Dim cust As Customer = TryCast(bg.Items(0), Customer)

        If cust Is Nothing Then
            Return New ValidationResult(False, "Customer is not the source object")
        End If

        Dim region As Region = CType(bg.GetValue(cust, "Location"), Region)
        Dim rep As ServiceRep = TryCast(bg.GetValue(cust, "ServiceRepresentative"), ServiceRep)
        Dim customerName As String = TryCast(bg.GetValue(cust, "Name"), String)

        If region = rep.Area Then
            Return ValidationResult.ValidResult
        Else

            Dim sb As New StringBuilder()
            sb.AppendFormat("{0} must be assigned a sales representative that serves the {1} region. " & vbLf & " ", customerName, region)
            Return New ValidationResult(False, sb.ToString())
        End If
    End Function
End Class

Kommentarer

Använd den ValidationRule.Validate här metoden i metoden för att hämta värdet som ska checkas in på källan. Typen av returvärde beror på i vilket skede inträffar ValidationRule . Om en TextBox till exempel är data som är bunden till en egenskap av typen heltal och anropen ValidationRuleGetValue(Object, String) har värdet ValidationStepRawProposedValue, returnerar metoden en sträng. ValidationRule Om har angetts ValidationStep till ConvertedProposedValuereturnerar metoden den typ som returneras av bindningens konverterare. I det här exemplet GetValue(Object, String) returneras vanligtvis ett heltal.

Gäller för