BindingGroup.GetValue(Object, String) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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.