BindingGroup.GetValue(Object, String) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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