BindingGroup.GetValue(Object, String) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает предложенное значение для заданного свойства и элемента.
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
Параметры
- item
- Object
Объект, содержащий заданное свойство.
- propertyName
- String
Свойство, предложенное значение которого требуется получить.
Возвращаемое значение
Предложенное значение свойства.
Исключения
Для заданного элемента и свойства привязка отсутствует.
Значение заданного свойства недоступно из-за ошибки преобразования или потому, что ранее завершилось неудачей выполнение правила проверки.
Примеры
Следующий пример является частью приложения, которое предлагает пользователю ввести несколько клиентов и назначить торгового представителя каждому клиенту. Приложение проверяет, принадлежит ли представитель по продажам и клиент к одному региону. В примере показан Validate метод, который использует GetValue(Object, String) метод для получения значений, введенных клиентом.
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
Комментарии
Используйте этот метод в методе ValidationRule.Validate , чтобы получить значение, которое будет зафиксировано в источнике. Тип возвращаемого значения зависит от этапа, на котором происходит.ValidationRule Например, если данные TextBox привязаны к свойству целого числа типа и ValidationRule для вызова GetValue(Object, String) задано значение ValidationStep RawProposedValue, метод возвращает строку. ValidationRule Если задано значение ValidationStep ConvertedProposedValue, метод возвращает любой тип, возвращаемый преобразователем привязки. В этом примере GetValue(Object, String) обычно возвращается целое число.