W jaki sposób Property Descriptor pobiera wartości dwóch kontrolek przy użyciu tej samej linii kodu?
Znalazłem ten kod w jednym z projektów opracowanych przez Ex-Employee dla niestandardowego gridview z niestandardowymi kontrolkami, który działa dobrze, ale nie jestem pewien, co dokładnie robi,
KOD:
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);
}
Co się dzieje wOnDataBindField
metoda szczególnie, gdy pobiera PropertyDescriptor. Zrobiłem trochę badań i doszedłem do wniosku, że jest to worek własności, ale jeśli jest to worek własności Jak dowiedziałby się, jaka jest wartość dla własności A lub B w tym kodzie.
PropertyDescriptor propertyA = TypeDescriptor.GetProperties(DataBinder.GetDataItem(control.NamingContainer)).Find("boundField", true);
PropertyDescriptor propertyB = TypeDescriptor.GetProperties(DataBinder.GetDataItem(control.NamingContainer)).Find("boundField", true);
Nie rozumiem dokładnie tego
Jak możnaDeskryptor właściwości pobiera wartości dwóch kontrolek za pomocą tej samej linii kodu
TypeDescriptor.GetProperties(DataBinder.GetDataItem(control.NamingContainer)).Find("boundField", true)
Jak powyżej linii kodu dowie się, czy jest to właściwość A lub właściwość B.
Próbowałem pobrać wartości z jednego deskryptora właściwości myśląc, że jest to torba właściwości, ale nie działała poprawnie.