BindingGroup.GetValue(Object, String) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定したプロパティと項目の提案値を返します。
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が整数型のプロパティにバインドされたデータであり、GetValue(Object, String)を呼び出すValidationRuleのValidationStepがRawProposedValueに設定されている場合、メソッドは文字列を返します。 ValidationRuleのValidationStepが ConvertedProposedValue に設定されている場合、メソッドはバインディングのコンバーターによって返されるすべての型を返します。 この例では、通常、 GetValue(Object, String) は整数を返します。