BindingGroup.GetValue(Object, String) Methode

Definition

Gibt den vorgeschlagenen Wert für die angegebene Eigenschaft und das angegebene Element zurück.

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

Parameter

item
Object

Das Objekt, das die angegebene Eigenschaft enthält.

propertyName
String

Die Eigenschaft, deren vorgeschlagener Wert abgerufen werden soll.

Gibt zurück

Der vorgeschlagene Eigenschaftswert.

Ausnahmen

Es gibt keine Bindung für das angegebene Element und die angegebene Eigenschaft.

Der Wert der angegebenen Eigenschaft ist aufgrund eines Konvertierungsfehlers nicht verfügbar oder weil eine frühere Überprüfungsregel fehlgeschlagen ist.

Beispiele

Das folgende Beispiel ist Teil einer Anwendung, die den Benutzer auffordert, mehrere Kunden einzugeben und jedem Kunden einen Vertriebsmitarbeiter zuzuweisen. Die Anwendung überprüft, ob der Vertriebsmitarbeiter und der Kunde derselben Region angehören. Das Beispiel zeigt die Validate Methode, die die GetValue(Object, String) Methode verwendet, um Werte abzurufen, die der Kunde eingegeben hat.

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

Hinweise

Verwenden Sie diese Methode in der ValidationRule.Validate Methode, um den Wert abzurufen, der an die Quelle gebunden werden soll. Der Typ des Rückgabewerts hängt von der Phase ab, in der der ValidationRule Wert auftritt. Wenn z. B. datengebunden an eine Eigenschaft des Typs "integer" sind und die Aufrufe auf <a0/> festgelegt sind, gibt die Methode eine Zeichenfolge zurück. Wenn der ValidationRuleValidationStep Wert auf festgelegt ConvertedProposedValueist, gibt die Methode den Typ zurück, der vom Konverter der Bindung zurückgegeben wird. In diesem Beispiel GetValue(Object, String) wird in der Regel eine ganze Zahl zurückgegeben.

Gilt für: