DataBoundControl.PerformDataBinding(IEnumerable) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Türetilmiş bir sınıfta geçersiz kılındığında, veri kaynağındaki verileri denetime bağlar.
protected public:
virtual void PerformDataBinding(System::Collections::IEnumerable ^ data);
protected internal virtual void PerformDataBinding (System.Collections.IEnumerable data);
abstract member PerformDataBinding : System.Collections.IEnumerable -> unit
override this.PerformDataBinding : System.Collections.IEnumerable -> unit
Protected Friend Overridable Sub PerformDataBinding (data As IEnumerable)
Parametreler
- data
- IEnumerable
Yöntem IEnumerable çağrısından PerformSelect() döndürülen verilerin listesi.
Örnekler
Aşağıdaki kod örneği, yönteminin PerformDataBinding öğesinden DataBoundControltüretilen bir sınıfta nasıl uygulanduğunu gösterir. Denetim, TextBoxSet
bağlı olduğu her veri öğesi için bir TextBox denetim oluşturur. Bu kod örneği, sınıfı için DataBoundControl sağlanan daha büyük bir örneğin parçasıdır.
protected override void PerformDataBinding(IEnumerable retrievedData) {
base.PerformDataBinding(retrievedData);
// If the data is retrieved from an IDataSource as an
// IEnumerable collection, attempt to bind its values to a
// set of TextBox controls.
if (retrievedData != null) {
foreach (object dataItem in retrievedData) {
TextBox box = new TextBox();
// The dataItem is not just a string, but potentially
// a System.Data.DataRowView or some other container.
// If DataTextField is set, use it to determine which
// field to render. Otherwise, use the first field.
if (DataTextField.Length > 0) {
box.Text = DataBinder.GetPropertyValue(dataItem,
DataTextField, null);
}
else {
PropertyDescriptorCollection props =
TypeDescriptor.GetProperties(dataItem);
// Set the "default" value of the TextBox.
box.Text = String.Empty;
// Set the true data-bound value of the TextBox,
// if possible.
if (props.Count >= 1) {
if (null != props[0].GetValue(dataItem)) {
box.Text = props[0].GetValue(dataItem).ToString();
}
}
}
BoxSet.Add(box);
}
}
}
Protected Overrides Sub PerformDataBinding(ByVal retrievedData As IEnumerable)
MyBase.PerformDataBinding(retrievedData)
' If the data is retrieved from an IDataSource as an IEnumerable
' collection, attempt to bind its values to a set of TextBox controls.
If Not (retrievedData Is Nothing) Then
Dim dataItem As Object
For Each dataItem In retrievedData
Dim box As New TextBox()
' The dataItem is not just a string, but potentially
' a System.Data.DataRowView or some other container.
' If DataTextField is set, use it to determine which
' field to render. Otherwise, use the first field.
If DataTextField.Length > 0 Then
box.Text = DataBinder.GetPropertyValue( _
dataItem, DataTextField, Nothing)
Else
Dim props As PropertyDescriptorCollection = _
TypeDescriptor.GetProperties(dataItem)
' Set the "default" value of the TextBox.
box.Text = String.Empty
' Set the true data-bound value of the TextBox,
' if possible.
If props.Count >= 1 Then
If props(0).GetValue(dataItem) IsNot Nothing Then
box.Text = props(0).GetValue(dataItem).ToString()
End If
End If
End If
BoxSet.Add(box)
Next dataItem
End If
End Sub
Açıklamalar
sınıfından DataBind veriye bağlı bir denetim DataBoundControl türetdiğinizde yöntemi yerine bu yöntemi uygulayın. Denetiminizin veri bağlama mantığını içine PerformDataBinding yerleştirmek, ve DataBound olaylarının DataBinding yanlış sırada tetiklenmesini önlemenizi sağlar.
Temel DataBoundControl sınıf bu yöntem için belirli bir uygulama sağlamasa da, PerformDataBinding yöntemi tarafından PerformSelect herhangi bir kullanıcı arabirimi (UI) denetiminin değerlerini yöntemi tarafından alınan verilere bağlamak için çağrılır PerformSelect .