BindingSource Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Encapsule la source de données pour un formulaire.
public ref class BindingSource : System::ComponentModel::Component, System::Collections::IList, System::ComponentModel::IBindingListView, System::ComponentModel::ICancelAddNew, System::ComponentModel::ISupportInitializeNotification, System::ComponentModel::ITypedList, System::Windows::Forms::ICurrencyManagerProvider
public ref class BindingSource : System::ComponentModel::Component, System::Collections::IList, System::ComponentModel::IBindingListView, System::ComponentModel::ICancelAddNew, System::ComponentModel::ISupportInitialize, System::ComponentModel::ISupportInitializeNotification, System::ComponentModel::ITypedList, System::Windows::Forms::ICurrencyManagerProvider
[System.ComponentModel.ComplexBindingProperties("DataSource", "DataMember")]
public class BindingSource : System.ComponentModel.Component, System.Collections.IList, System.ComponentModel.IBindingListView, System.ComponentModel.ICancelAddNew, System.ComponentModel.ISupportInitializeNotification, System.ComponentModel.ITypedList, System.Windows.Forms.ICurrencyManagerProvider
[System.ComponentModel.ComplexBindingProperties("DataSource", "DataMember")]
public class BindingSource : System.ComponentModel.Component, System.Collections.IList, System.ComponentModel.IBindingListView, System.ComponentModel.ICancelAddNew, System.ComponentModel.ISupportInitialize, System.ComponentModel.ISupportInitializeNotification, System.ComponentModel.ITypedList, System.Windows.Forms.ICurrencyManagerProvider
[<System.ComponentModel.ComplexBindingProperties("DataSource", "DataMember")>]
type BindingSource = class
inherit Component
interface IBindingListView
interface IBindingList
interface IList
interface ICollection
interface IEnumerable
interface ITypedList
interface ICancelAddNew
interface ISupportInitializeNotification
interface ISupportInitialize
interface ICurrencyManagerProvider
[<System.ComponentModel.ComplexBindingProperties("DataSource", "DataMember")>]
type BindingSource = class
inherit Component
interface IBindingListView
interface ICollection
interface IEnumerable
interface IList
interface IBindingList
interface ITypedList
interface ICancelAddNew
interface ISupportInitializeNotification
interface ISupportInitialize
interface ICurrencyManagerProvider
Public Class BindingSource
Inherits Component
Implements IBindingListView, ICancelAddNew, ICurrencyManagerProvider, IList, ISupportInitializeNotification, ITypedList
Public Class BindingSource
Inherits Component
Implements IBindingListView, ICancelAddNew, ICurrencyManagerProvider, IList, ISupportInitialize, ISupportInitializeNotification, ITypedList
- Héritage
- Attributs
- Implémente
Exemples
L’exemple de code suivant illustre un ListBox lié à un BindingSource. est BindingSource lié à un BindingList<T> qui contient une liste de polices.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace BindingSourceExamples
{
public class Form1 : Form
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.Run(new Form1());
}
public Form1()
{
this.Load += new EventHandler(Form1_Load);
}
private TextBox textBox1;
private Button button1;
private ListBox listBox1;
private BindingSource binding1;
void Form1_Load(object sender, EventArgs e)
{
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";
button1.Click += new EventHandler(this.button1_Click);
this.ClientSize = new Size(292, 266);
this.Controls.Add(this.button1);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.listBox1);
MyFontList fonts = new MyFontList();
for (int i = 0; i < FontFamily.Families.Length; i++)
{
if (FontFamily.Families[i].IsStyleAvailable(FontStyle.Regular))
fonts.Add(new Font(FontFamily.Families[i], 11.0F, FontStyle.Regular));
}
binding1.DataSource = fonts;
listBox1.DataSource = binding1;
listBox1.DisplayMember = "Name";
}
private void button1_Click(object sender, EventArgs e)
{
if (!binding1.SupportsSearching)
{
MessageBox.Show("Cannot search the list.");
}
else
{
int foundIndex = binding1.Find("Name", textBox1.Text);
if (foundIndex > -1)
listBox1.SelectedIndex = foundIndex;
else
MessageBox.Show("Font was not found.");
}
}
}
public class MyFontList : BindingList<Font>
{
protected override bool SupportsSearchingCore
{
get { return true; }
}
protected override int FindCore(PropertyDescriptor prop, object key)
{
// Ignore the prop value and search by family name.
for (int i = 0; i < Count; ++i)
{
if (Items[i].FontFamily.Name.ToLower() == ((string)key).ToLower())
return i;
}
return -1;
}
}
}
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
Private 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
Remarques
Le BindingSource composant remplit de nombreuses fonctions. Tout d’abord, il simplifie la liaison des contrôles d’un formulaire aux données en fournissant la gestion des devises, la notification de modification et d’autres services entre les contrôles Windows Forms et les sources de données. Pour ce faire, attachez le BindingSource composant à votre source de données à l’aide de la DataSource propriété . Pour les scénarios de liaison complexes, vous pouvez éventuellement définir la DataMember propriété sur une colonne ou une liste spécifique dans la source de données. Vous liez ensuite des contrôles au BindingSource. Toutes les interactions supplémentaires avec les données sont effectuées avec des appels au BindingSource composant. Pour obtenir des exemples sur la façon dont le BindingSource peut simplifier le processus de liaison, consultez How to: Bind Windows Forms Controls to DBNull Database Values et How to: Handle Errors and Exceptions that Occur with Databinding. La navigation et la mise à jour de la source de données sont effectuées par le biais de méthodes telles que MoveNext, MoveLastet Remove. Les opérations telles que le tri et le filtrage sont gérées via les Sort propriétés et Filter . Pour plus d’informations sur l’utilisation du tri et du filtrage avec , BindingSourceconsultez How to: Sort and Filter ADO.NET Data with the Windows Forms BindingSource Component.
En outre, le BindingSource composant peut agir comme une source de données fortement typée. En règle générale, le type de la source de données sous-jacente est résolu via l’un des mécanismes suivants :
Utilisez la Add méthode pour ajouter un élément au BindingSource composant.
Définissez la propriété sur DataSource une liste, un objet unique ou un type.
Ces deux mécanismes créent une liste fortement typée. Pour plus d’informations sur l’utilisation de BindingSource pour lier à un type, consultez How to: Bind a Windows Forms Control to a Type. Vous pouvez également utiliser pour BindingSource lier vos contrôles à un objet de fabrique. Pour plus d’informations sur la procédure à suivre, consultez How to: Bind a Windows Forms Control to a Factory Object.
Notes
Étant donné qu’un BindingSource gère à la fois des sources de données simples et complexes, la terminologie est problématique. Dans cette documentation de classe, la liste des termes fait référence à une collection de données dans la source de données hébergée, et l’élément désigne un élément unique. Lorsque vous discutez des fonctionnalités associées à des sources de données complexes, la table et la ligne de termes équivalents sont utilisées.
BindingSource fournit des membres pour accéder aux données sous-jacentes. L’élément actif peut être récupéré via la Current propriété , et la liste entière peut être récupérée via la List propriété . Les opérations de modification sont prises en charge sur l’élément actuel via Current et les RemoveCurrentméthodes , EndEditCancelEdit et Add et AddNew . Bien que la gestion des devises soit gérée automatiquement pour tous les types de sources de données sous-jacents, cette classe expose un certain nombre d’événements, tels que CurrentItemChanged et DataSourceChanged, qui permettent la personnalisation.
Les sources de données liées à un BindingSource composant peuvent également être parcourues et gérées avec la BindingNavigator classe , qui fournit une interface utilisateur de type VCR pour la navigation dans les éléments d’une liste. Bien qu’elle BindingNavigator puisse être liée à n’importe quelle source de données, elle a été conçue pour s’intégrer à un BindingSource composant via sa BindingNavigator.BindingSource propriété .
La propriété par défaut de la BindingSource classe est DataSource. L’événement par défaut est CurrentChanged.
Attention
La plupart des membres de la BindingSource classe opèrent sur la liste sous-jacente représentée par la List propriété et font simplement référence à leur opération à la liste sous-jacente. Par conséquent, lorsque est BindingSource 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 RemoveAt méthode appelle IList.RemoveAt. La BindingSource documentation décrit la RemoveAt méthode en comprenant que la RemoveAt méthode pour le sous-jacent IList est correctement implémentée.
Constructeurs
BindingSource() |
Initialise une nouvelle instance de la classe BindingSource aux valeurs par défaut des propriétés. |
BindingSource(IContainer) |
Initialise une nouvelle instance de la classe BindingSource et ajoute BindingSource au conteneur spécifié. |
BindingSource(Object, String) |
Initialise une nouvelle instance de la classe BindingSource avec la source de données et la donnée membre spécifiées. |
Propriétés
AllowEdit |
Obtient une valeur indiquant si les éléments de la liste sous-jacente peuvent être modifiés. |
AllowNew |
Obtient ou définit une valeur indiquant si la méthode AddNew() peut être utilisée pour ajouter des éléments à la liste. |
AllowRemove |
Obtient une valeur indiquant si des éléments peuvent être supprimés de la liste sous-jacente. |
CanRaiseEvents |
Obtient une valeur qui indique si le composant peut déclencher un événement. (Hérité de Component) |
Container |
Obtient le IContainer qui contient la Component. (Hérité de Component) |
Count |
Obtient le nombre total d'éléments de la liste sous-jacente, en prenant la valeur Filter actuelle en considération. |
CurrencyManager |
Obtient le gestionnaire de devise associé à ce BindingSource. |
Current |
Obtient l'élément en cours dans la liste. |
DataMember |
Obtient ou définit la liste spécifique dans la source de données à laquelle le connecteur effectue actuellement des liaisons. |
DataSource |
Obtient ou définit la source de données à laquelle le connecteur effectue une liaison. |
DesignMode |
Obtient une valeur qui indique si Component est actuellement en mode design. (Hérité de Component) |
Events |
Obtient la liste des gestionnaires d'événements attachés à ce Component. (Hérité de Component) |
Filter |
Obtient ou définit l'expression utilisée pour filtrer les lignes qui s'affichent. |
IsBindingSuspended |
Obtient une valeur indiquant si la liaison de la liste est suspendue. |
IsFixedSize |
Obtient une valeur indiquant si la liste sous-jacente est de taille fixe. |
IsReadOnly |
Obtient une valeur indiquant si la liste sous-jacente est en lecture seule. |
IsSorted |
Obtient une valeur indiquant si les éléments de la liste sous-jacente sont triés. |
IsSynchronized |
Obtient une valeur indiquant si l’accès à la collection est synchronisé (thread-safe). |
Item[Int32] |
Obtient ou définit l'élément de liste situé à l'index spécifié. |
List |
Obtient la liste à laquelle le connecteur est lié. |
Position |
Obtient ou définit l'index de l'élément actuel dans la liste sous-jacente. |
RaiseListChangedEvents |
Obtient ou définit une valeur indiquant si les événements ListChanged doivent être déclenchés. |
Site |
Obtient ou définit le ISite de Component. (Hérité de Component) |
Sort |
Obtient ou définit les noms de colonnes utilisés pour le tri, et l'ordre de tri pour consulter les lignes dans la source de données. |
SortDescriptions |
Obtient la collection de descriptions de tri appliquée à la source de données. |
SortDirection |
Obtient la direction dans laquelle les éléments de la liste sont triés. |
SortProperty |
Obtient le PropertyDescriptor utilisé actuellement pour trier la liste. |
SupportsAdvancedSorting |
Obtient une valeur indiquant si la source de données prend en charge le tri multicolonne. |
SupportsChangeNotification |
Obtient une valeur indiquant si la source de données prend en charge la notification de modification. |
SupportsFiltering |
Obtient une valeur indiquant si la source de données prend en charge le filtrage. |
SupportsSearching |
Obtient une valeur indiquant si la source de données prend en charge la recherche à l'aide de la méthode Find(PropertyDescriptor, Object). |
SupportsSorting |
Obtient une valeur indiquant si la source de données prend en charge le tri. |
SyncRoot |
Obtient un objet pouvant être utilisé pour synchroniser l’accès à la liste sous-jacente. |
Méthodes
Add(Object) |
Ajoute un élément existant à la liste interne. |
AddNew() |
Ajoute un nouvel élément à la liste sous-jacente. |
ApplySort(ListSortDescriptionCollection) |
Trie la source de données avec les descriptions de tri spécifiées. |
ApplySort(PropertyDescriptor, ListSortDirection) |
Trie la source de données avec le descripteur de propriété et la direction de tri spécifiés. |
CancelEdit() |
Annule l'opération de modification actuelle. |
Clear() |
Supprime tous les éléments de la liste. |
Contains(Object) |
Détermine si un objet est un élément de la liste. |
CopyTo(Array, Int32) |
Copie le contenu du List au niveau de la valeur d'index spécifiée dans le tableau spécifié. |
CreateObjRef(Type) |
Crée un objet contenant toutes les informations appropriées requises pour générer un proxy permettant de communiquer avec un objet distant. (Hérité de MarshalByRefObject) |
Dispose() |
Libère toutes les ressources utilisées par Component. (Hérité de Component) |
Dispose(Boolean) |
Libère les ressources non managées utilisées par BindingSource et libère éventuellement les ressources managées. |
EndEdit() |
Applique des modifications en attente à la source de données sous-jacente. |
Equals(Object) |
Détermine si l'objet spécifié est égal à l'objet actuel. (Hérité de Object) |
Find(PropertyDescriptor, Object) |
Recherche l'index de l'élément qui a le descripteur de propriété donné. |
Find(String, Object) |
Retourne l'index de l'élément dans la liste avec le nom et la valeur de propriété spécifiés. |
GetEnumerator() |
Récupère un énumérateur pour List. |
GetHashCode() |
Fait office de fonction de hachage par défaut. (Hérité de Object) |
GetItemProperties(PropertyDescriptor[]) |
Récupère un tableau d'objets PropertyDescriptor représentant les propriétés du type de liste de source de données pouvant être liées. |
GetLifetimeService() |
Obsolète.
Récupère l'objet de service de durée de vie en cours qui contrôle la stratégie de durée de vie de cette instance. (Hérité de MarshalByRefObject) |
GetListName(PropertyDescriptor[]) |
Obtient le nom de la liste fournissant les données pour la liaison. |
GetRelatedCurrencyManager(String) |
Obtient le gestionnaire de devise connexe pour le membre de données spécifié. |
GetService(Type) |
Retourne un objet qui représente un service fourni par Component ou par son Container. (Hérité de Component) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
IndexOf(Object) |
Recherche l'objet spécifié et retourne l'index de la première occurrence dans la liste entière. |
InitializeLifetimeService() |
Obsolète.
Obtient un objet de service de durée de vie pour contrôler la stratégie de durée de vie de cette instance. (Hérité de MarshalByRefObject) |
Insert(Int32, Object) |
Insère un élément dans la liste à l'index spécifié. |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
MemberwiseClone(Boolean) |
Crée une copie superficielle de l'objet MarshalByRefObject actuel. (Hérité de MarshalByRefObject) |
MoveFirst() |
Passe au premier élément de la liste. |
MoveLast() |
Passe au dernier élément de la liste. |
MoveNext() |
Passe à l'élément suivant de la liste. |
MovePrevious() |
Passe à l'élément précédent de la liste. |
OnAddingNew(AddingNewEventArgs) |
Déclenche l’événement AddingNew. |
OnBindingComplete(BindingCompleteEventArgs) |
Déclenche l’événement BindingComplete. |
OnCurrentChanged(EventArgs) |
Déclenche l’événement CurrentChanged. |
OnCurrentItemChanged(EventArgs) |
Déclenche l’événement CurrentItemChanged. |
OnDataError(BindingManagerDataErrorEventArgs) |
Déclenche l’événement DataError. |
OnDataMemberChanged(EventArgs) |
Déclenche l’événement DataMemberChanged. |
OnDataSourceChanged(EventArgs) |
Déclenche l’événement DataSourceChanged. |
OnListChanged(ListChangedEventArgs) |
Déclenche l’événement ListChanged. |
OnPositionChanged(EventArgs) |
Déclenche l’événement PositionChanged. |
Remove(Object) |
Supprime l'élément spécifié de la liste. |
RemoveAt(Int32) |
Supprime l'élément au niveau de l'index spécifié dans la liste. |
RemoveCurrent() |
Supprime l'élément sélectionné de la liste. |
RemoveFilter() |
Supprime le filtre associé à ce BindingSource. |
RemoveSort() |
Supprime le tri associé à BindingSource. |
ResetAllowNew() |
Réinitialise la propriété AllowNew. |
ResetBindings(Boolean) |
Entraîne la relecture par un contrôle lié au BindingSource de tous les éléments dans la liste et l'actualisation de leurs valeurs affichées. |
ResetCurrentItem() |
Entraîne la relecture par un contrôle lié au BindingSource de l'élément actuellement sélectionné et l'actualisation de sa valeur affichée. |
ResetItem(Int32) |
Entraîne la relecture d'un contrôle lié au BindingSource à l'élément au niveau de l'index spécifié et actualise sa valeur affichée. |
ResumeBinding() |
Relance la liaison de données. |
SuspendBinding() |
Suspend la liaison de données pour empêcher que les modifications mettent à jour la source de données liée. |
ToString() |
Retourne un String contenant le nom du Component, s’il en existe un. Cette méthode ne doit pas être remplacée. (Hérité de Component) |
Événements
AddingNew |
Se produit avant l'ajout d'un élément à la liste sous-jacente. |
BindingComplete |
Se produit lorsque tous les clients ont été liés à ce BindingSource. |
CurrentChanged |
Se produit quand l'élément actuellement lié change. |
CurrentItemChanged |
Se produit lorsque la propriété Current a changé de valeur. |
DataError |
Se produit lorsqu'une exception relative à la devise est gérée silencieusement par BindingSource. |
DataMemberChanged |
Se produit quand la valeur de propriété DataMember a été modifiée. |
DataSourceChanged |
Se produit quand la valeur de propriété DataSource a été modifiée. |
Disposed |
Se produit lorsque le composant est supprimé par un appel à la méthode Dispose(). (Hérité de Component) |
ListChanged |
Se produit en cas de modification de la liste sous-jacente ou d'un de ses éléments. |
PositionChanged |
Se produit une fois que la valeur de la propriété Position a été modifiée. |
Implémentations d’interfaces explicites
IBindingList.AddIndex(PropertyDescriptor) |
Ajoute PropertyDescriptor aux index utilisés pour la recherche. |
IBindingList.RemoveIndex(PropertyDescriptor) |
Supprime PropertyDescriptor des index utilisés pour la recherche. |
ICancelAddNew.CancelNew(Int32) |
Élimine un nouvel élément en attente de la collection. |
ICancelAddNew.EndNew(Int32) |
Valide un nouvel élément en attente dans la collection. |
ISupportInitialize.BeginInit() |
Signale à BindingSource que l'initialisation démarre. |
ISupportInitialize.EndInit() |
Signale à BindingSource que l'initialisation est terminée. |
ISupportInitializeNotification.Initialized |
Se produit lorsque BindingSource est initialisé. |
ISupportInitializeNotification.IsInitialized |
Obtient une valeur indiquant si BindingSource est initialisé. |
Méthodes d’extension
Cast<TResult>(IEnumerable) |
Effectue un cast des éléments d'un IEnumerable vers le type spécifié. |
OfType<TResult>(IEnumerable) |
Filtre les éléments d'un IEnumerable en fonction du type spécifié. |
AsParallel(IEnumerable) |
Active la parallélisation d'une requête. |
AsQueryable(IEnumerable) |
Convertit un IEnumerable en IQueryable. |