BindingGroup.GetValue(Object, String) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Retourneert de voorgestelde waarde voor de opgegeven eigenschap en het opgegeven item.
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
Parameters
- item
- Object
Het object dat de opgegeven eigenschap bevat.
- propertyName
- String
De eigenschap waarvan de voorgestelde waarde moet worden opgehaald.
Retouren
De voorgestelde eigenschapswaarde.
Uitzonderingen
Er is geen binding voor het opgegeven item en de opgegeven eigenschap.
De waarde van de opgegeven eigenschap is niet beschikbaar vanwege een conversiefout of omdat een eerdere validatieregel is mislukt.
Voorbeelden
Het volgende voorbeeld maakt deel uit van een toepassing waarin de gebruiker wordt gevraagd om meerdere klanten in te voeren en een verkoopvertegenwoordiger toe te wijzen aan elke klant. De toepassing controleert of de verkoopvertegenwoordiger en de klant deel uitmaken van dezelfde regio. In het voorbeeld ziet u de Validate methode, die gebruikmaakt van de GetValue(Object, String) methode om waarden op te halen die de klant heeft ingevoerd.
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
Opmerkingen
Gebruik deze methode in de ValidationRule.Validate methode om de waarde op te halen die moet worden doorgevoerd in de bron. Het type van de retourwaarde is afhankelijk van de fase waarin de ValidationRule waarde zich voordoet. Als een TextBox gegevens bijvoorbeeld zijn gebonden aan een eigenschap van het type geheel getal en de ValidationRule aanroepen GetValue(Object, String) zijn ValidationStep ingesteld RawProposedValue, retourneert de methode een tekenreeks. Als de ValidationRuleValidationStep waarde is ingesteld ConvertedProposedValueop, retourneert de methode het type dat wordt geretourneerd door het conversieprogramma van de binding. In dit voorbeeld GetValue(Object, String) wordt meestal een geheel getal geretourneerd.