Assembly : System.Windows.Forms (dans system.windows.forms.dll)
SyntaxePublic Class BindingSource Inherits Component Implements IBindingListView, IBindingList, IList, ICollection, _ IEnumerable, ITypedList, ICancelAddNew, ISupportInitializeNotification, ISupportInitialize, _ ICurrencyManagerProvider
Dim instance As BindingSource
public class BindingSource : Component, IBindingListView, IBindingList, IList, ICollection, IEnumerable, ITypedList, ICancelAddNew, ISupportInitializeNotification, ISupportInitialize, ICurrencyManagerProvider
public ref class BindingSource : public Component, IBindingListView, IBindingList, IList, ICollection, IEnumerable, ITypedList, ICancelAddNew, ISupportInitializeNotification, ISupportInitialize, ICurrencyManagerProvider
public class BindingSource extends Component implements IBindingListView, IBindingList, IList, ICollection, IEnumerable, ITypedList, ICancelAddNew, ISupportInitializeNotification, ISupportInitialize, ICurrencyManagerProvider
public class BindingSource extends Component implements IBindingListView, IBindingList, IList, ICollection, IEnumerable, ITypedList, ICancelAddNew, ISupportInitializeNotification, ISupportInitialize, ICurrencyManagerProvider
NotesLe composant BindingSource présente les intérêts suivants. En premier lieu, il simplifie la liaison de contrôles présents sur un formulaire à des données en fournissant différents services, notamment une couche d'indirection, une gestion monétaire et une notification de changements. Pour ce faire, attachez le composant BindingSource à votre source de données, puis liez les contrôles de votre formulaire au composant BindingSource. Toute interaction supplémentaire avec les données, y compris la navigation, le tri, le filtre et la mise à jour, est effectuée avec les appels au composant BindingSource.
En second lieu, le composant BindingSource peut agir comme une source de données fortement typées. En général, le type de la source de données sous-jacente est fixé par le biais d'un des mécanismes suivants :
-
Utilisez la méthode Add pour ajouter un élément au composant BindingSource.
-
Définissez la propriété DataSource à une liste, un objet unique ou un type.
Ces deux mécanismes créent une liste fortement typée. BindingSource prend en charge les liaisons de données simple et complexe, comme indiqué par ses propriétés DataSource et DataMember.
Remarque |
|---|
| Comme BindingSource gère à la fois les sources de données simple et complexe, la terminologie est problématique. Dans cette documentation de classe, le terme liste fait référence à une collecte de données dans la source de données hébergée, et le terme élément désigne un élément seul. Les termes équivalents table et ligne sont utilisés pour des fonctionnalités associées aux sources de données complexes,. |
BindingSource fournit des membres pour accéder aux données sous-jacentes. L'élément actuel peut être récupéré via la propriété Current, et la liste entière peut être récupérée via la propriété List. Les opérations de modification sont prises en charge sur l'élément actuel via Current et les méthodes RemoveCurrent, EndEdit, CancelEdit, Add et AddNew. Bien que la gestion de la devise soit gérée automatiquement pour l'ensemble des types de sources de données sous-jacents, cette classe expose plusieurs événements, tels que CurrentItemChanged et DataSourceChanged qui permettent la personnalisation.
Les sources de données liées à un composant BindingSource peuvent également être parcourues et gérées avec la classe BindingNavigator qui fournit une interface utilisateur de type magnétoscope pour parcourir des éléments dans une liste. Bien que BindingNavigator puisse être lié à n'importe quelle source de données, il a été conçu pour s'intégrer à un composant BindingSource via sa propriété BindingNavigator.BindingSource.
La propriété par défaut pour la classe BindingSource est DataSource. L'événement par défaut est CurrentChanged.
Attention |
|---|
| Un certain nombre de membres de la classe BindingSource fonctionnent dans la liste sous-jacente représentée par la propriété List et font référence à leur opération simplement dans la liste sous-jacente. Par conséquent, lorsque le BindingSource est lié à une implémentation personnalisée de IList, le comportement exact de ces membres peut différer du comportement décrit dans la documentation de classe. Par exemple, la méthode RemoveAt appelle IList.RemoveAt. La documentation de BindingSource décrit la méthode RemoveAt en stipulant que la méthode RemoveAt du IList sous-jacent est implémentée correctement. |
ExempleL'exemple de code suivant illustre un ListBox liée à un BindingSource. Le BindingSource est lié à un BindingList qui contient une liste de polices.
Imports System Imports System.Collections.Generic Imports System.ComponentModel Imports System.Drawing Imports System.Text Imports System.Windows.Forms Public Class Form1 Inherits Form <STAThread()> _ Shared Sub Main() Application.EnableVisualStyles() Application.Run(New Form1()) End Sub Public Sub New() End Sub Private textBox1 As TextBox Private WithEvents button1 As Button Private listBox1 As ListBox Private components As IContainer Private binding1 As BindingSource Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load listBox1 = New ListBox() textBox1 = New TextBox() binding1 = New BindingSource() button1 = New Button() listBox1.Location = New Point(140, 25) listBox1.Size = New Size(123, 160) textBox1.Location = New Point(23, 70) textBox1.Size = New Size(100, 20) textBox1.Text = "Wingdings" button1.Location = New Point(23, 25) button1.Size = New Size(75, 23) button1.Text = "Search" Me.ClientSize = New Size(292, 266) Me.Controls.Add(Me.button1) Me.Controls.Add(Me.textBox1) Me.Controls.Add(Me.listBox1) Dim fonts As New MyFontList() Dim i As Integer For i = 0 To FontFamily.Families.Length - 1 If FontFamily.Families(i).IsStyleAvailable(FontStyle.Regular) Then fonts.Add(New Font(FontFamily.Families(i), 11.0F, FontStyle.Regular)) End If Next i binding1.DataSource = fonts listBox1.DataSource = binding1 listBox1.DisplayMember = "Name" End Sub Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) _ Handles button1.Click If binding1.SupportsSearching <> True Then MessageBox.Show("Cannot search the list.") Else Dim foundIndex As Integer = binding1.Find("Name", textBox1.Text) If foundIndex > -1 Then listBox1.SelectedIndex = foundIndex Else MessageBox.Show("Font was not found.") End If End If End Sub End Class Public Class MyFontList Inherits BindingList(Of Font) Protected Overrides ReadOnly Property SupportsSearchingCore() As Boolean Get Return True End Get End Property Protected Overrides Function FindCore(ByVal prop As PropertyDescriptor, _ ByVal key As Object) As Integer ' Ignore the prop value and search by family name. Dim i As Integer While i < Count If Items(i).FontFamily.Name.ToLower() = CStr(key).ToLower() Then Return i End If i += 1 End While Return -1 End Function End Class
Hiérarchie d'héritageSystem.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.BindingSource
Sécurité des threads
Plates-formesWindows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition
Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.
Informations de version
Remarque
Attention
Outils (masquer)
S'enregistrer
Liste des Membres
Qui est en ligne?
FAQ