コードに次のクラスがあるとします。
1) アドレスクラス
public class Address {
public string Street { get; set; }
public string City { get; set; }
}
2) ユーザークラス
public class User {
public string UserName { get; set; }
public Address UserAddress { get; set; }
}
ここで、Street 列をプロパティ User.Address.Street にバインドしたいのですが、残念ながら、FieldName を「Address.Street」に設定するだけでは機能しません。
ただし、必要な方法で実現することが重要な場合は、次のように Address クラスの ToString() メソッドをオーバーライドすることをお勧めします。
public class Address {
public string Street { get; set; }
public string City { get; set; }
//Override ToString() method
public override string ToString() {
return this.Street;
}
}
次に、フィールド名を「Address.Street」ではなく「Address」に設定します。
また、User クラスに UserStreet という別の読み取り専用プロパティを追加する方法もあります。
public class User {
public string UserName { get; set; }
public Address UserAddress { get; set; }
public UserStreet {
get { return UserAddress != null ? UserAddress.Street : ""; }
}
}
次に、FieldName を「UserStreet」に設定します。
お役に立てれば。