DataBoundControl.PerformDataBinding(IEnumerable) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Bindet beim Überschreiben in einer abgeleiteten Klasse Daten aus der Datenquelle an das Steuerelement.
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)
Parameter
- data
- IEnumerable
Die IEnumerable-Datenliste, die bei einem Aufruf der PerformSelect()-Methode zurückgegeben wurde.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie die PerformDataBinding -Methode in einer von abgeleiteten Klasse implementiert wird DataBoundControl. Das TextBoxSet
-Steuerelement erstellt ein TextBox Steuerelement für jedes Datenelement, an das es gebunden ist. Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die DataBoundControl-Klasse bereitgestellt wird.
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
Hinweise
Implementieren Sie diese Methode anstelle der DataBind -Methode, wenn Sie ein datengebundenes Steuerelement von der DataBoundControl -Klasse ableiten. Wenn Sie die Datenbindungslogik Ihres Steuerelements in PerformDataBinding platzieren, können Sie vermeiden, dass die DataBinding Ereignisse und DataBound in der falschen Reihenfolge ausgelöst werden.
Während die Basisklasse DataBoundControl keine spezifische Implementierung für diese Methode bereitstellt, wird die PerformDataBinding -Methode von der PerformSelect -Methode aufgerufen, um die Werte aller Benutzeroberflächensteuerelemente (UI) an die Daten zu binden, die von der PerformSelect -Methode abgerufen werden.