BindingGroup.GetValue(Object, String) メソッド

定義

指定されているプロパティと項目に対して提示されている値を返します。Returns the proposed value for the specified property and 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

パラメーター

item
Object

指定されているプロパティを含むオブジェクト。The object that contains the specified property.

propertyName
String

提示されている値を取得するプロパティ。The property whose proposed value to get.

戻り値

Object

提示されているプロパティ値。The proposed property value.

例外

指定されている項目とプロパティにはバインディングがありません。There is not a binding for the specified item and property.

変換エラーまたは前の検証ルールが失敗したために、指定されているプロパティの値は使用できません。The value of the specified property is not available, due to a conversion error or because an earlier validation rule failed.

次の例は、複数の顧客を入力し、各顧客に販売担当者を割り当てるようにユーザーに求めるアプリケーションの一部です。The following example is part of an application that prompts the user to enter multiple customers and assign a sales representative to each customer. アプリケーションは、営業担当者と顧客が同じリージョンに属していることを確認します。The application checks that the sales representative and the customer belong to the same region. この例は、Validate メソッドを示しています。このメソッドは、GetValue(Object, String) メソッドを使用して、顧客が入力した値を取得します。The example shows the Validate method, which uses the GetValue(Object, String) method to get values that the customer entered.

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 メソッドでこのメソッドを使用して、ソースにコミットする値を取得します。Use this method in the ValidationRule.Validate method to get the value to be committed to the source. 戻り値の型は、ValidationRule が発生する段階によって異なります。The type of the return value depends on the stage at which the ValidationRule occurs. たとえば、TextBox が integer 型のプロパティにバインドされたデータであり、GetValue(Object, String) を呼び出す ValidationRuleValidationStepRawProposedValueに設定されている場合、メソッドは文字列を返します。For example, if a TextBox is data bound to a property of type integer and the ValidationRule that calls GetValue(Object, String) has its ValidationStep set to RawProposedValue, the method returns a string. ValidationRuleValidationStepConvertedProposedValueに設定されている場合、メソッドはバインドのコンバーターによって返される任意の型を返します。If the ValidationRule has its ValidationStep set to ConvertedProposedValue, the method returns whatever type that is returned by the binding's converter. この例では、GetValue(Object, String) 通常、整数が返されます。In this example, GetValue(Object, String) usually returns an integer.

適用対象