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 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 besteht keine Bindung für das angegebene Element und die Eigenschaft.
Der Wert der angegebenen Eigenschaft ist aufgrund eines Konvertierungsfehlers oder einer zuvor fehlgeschlagenen Validierungsregel nicht verfügbar.
Beispiele
Das folgende Beispiel ist Teil einer Anwendung, die den Benutzer aufgefordert, mehrere Kunden einzugeben und jedem Kunden einen Vertriebsmitarbeiter zuzuweisen. Die Anwendung überprüft, ob der Vertriebsmitarbeiter und der Kunde zur gleichen Region gehören. Das Beispiel zeigt die Methode, die die Validate 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 die ValidationRule Vorkommen auftreten. Wenn z. B. eine TextBox Datenverbindung an eine Eigenschaft des Typs ganzzahl gebunden ist und die Aufrufe GetValue(Object, String) ValidationStep ihren Satz RawProposedValueaufweisen, gibt die ValidationRule Methode eine Zeichenfolge zurück. Wenn die ValidationRule Methode auf "festgelegt" festgelegt ConvertedProposedValueistValidationStep, gibt die Methode jeden Typ zurück, der vom Konverter der Bindung zurückgegeben wird. In diesem Beispiel wird in der Regel GetValue(Object, String) eine ganze Zahl zurückgegeben.