このコードは、元従業員がカスタムコントロールを備えたカスタムグリッドビュー用に開発したプロジェクトの1つで見つかりましたが、正確には何をしているのかわかりません。
コード:
public class aBoundField : ImageField
{
//here I got some get set properties defined
protected override void OnDataBindField(object sender, EventArgs e)
{
Control control = (Control)sender;
PropertyDescriptor propertyA = TypeDescriptor.GetProperties(DataBinder.GetDataItem(control.NamingContainer)).Find("boundField", true);
PropertyDescriptor propertyB = TypeDescriptor.GetProperties(DataBinder.GetDataItem(control.NamingContainer)).Find("boundField", true);
PropertyAFieldValue = this.GetValue(control.NamingContainer, this._PropertyAField, ref propertyA).ToString();
PropertyBFieldValue = this.GetValue(control.NamingContainer, this._PropertyBField, ref propertyB).ToString();
base.OnDataBindField(sender, e);
}
OnDataBindField
特にPropertyDescriptorを取得しているときに、メソッドで何が起こっているか 。私は少し調べて、それがプロパティバッグであることがわかりましたが、それがプロパティバッグである場合、このコードのプロパティAまたはプロパティBの値をどのように知ることができますか。
PropertyDescriptor propertyA = TypeDescriptor.GetProperties(DataBinder.GetDataItem(control.NamingContainer)).Find("boundField", true);
PropertyDescriptor propertyB = TypeDescriptor.GetProperties(DataBinder.GetDataItem(control.NamingContainer)).Find("boundField", true);
私が正確に理解していないのは
プロパティ記述 子が同じコード行を使用して2つのコントロールの値を取得するにはどうすればよいですか
TypeDescriptor.GetProperties(DataBinder.GetDataItem(control.NamingContainer)).Find("boundField", true)
上記のコード行は、プロパティAまたはプロパティBのどちらであるかをどのように判断しますか。
プロパティバッグだと思って1つのプロパティ記述子から値を取得しようとしましたが、正しく機能しませんでした。