Dela via


Översikt över BindingSource-komponent

Komponenten BindingSource är utformad för att förenkla processen för bindning av kontroller till en underliggande datakälla. Komponenten BindingSource fungerar både som en kanal och en datakälla för andra kontroller att binda till. Det ger en abstraktion av formulärets dataanslutning när du skickar kommandon till den underliggande listan med data. Dessutom kan du lägga till data direkt till den, så att själva komponenten fungerar som en datakälla.

BindingSource-komponent som mellanhand

Komponenten BindingSource fungerar som datakälla för vissa eller alla kontroller i formuläret. I Visual Studio kan BindingSource bindas till en kontroll med hjälp av egenskapen DataBindings, som är tillgänglig från fönstret Egenskaper. Se även Så här: Binda Windows Forms-kontroller med BindingSource-komponenten med hjälp av designern.

Du kan binda komponenten BindingSource till både enkla datakällor, till exempel en enda egenskap för ett objekt eller en grundläggande samling som ArrayList, och komplexa datakällor, som en databastabell. Komponenten BindingSource fungerar som en mellanhand som tillhandahåller bindande tjänster och valutahanteringstjänster. Vid designtid eller körningstid kan du binda en BindingSource-komponent till en komplex datakälla genom att ange DataSource och DataMember-egenskaperna för databasen respektive tabellen. Följande bild visar var komponenten BindingSource passar in i den befintliga databindningsarkitekturen.

Arkitektur för bindning av källa och databindning

Anmärkning

Vid designtillfället kommer vissa åtgärder, till exempel att dra en databastabell från ett datafönster till ett tomt formulär, att skapa BindingSource-komponenten, binda den till den underliggande datakällan och lägga till datamedvetna kontroller allt i en enda operation. Se även Binda Windows Forms-kontroller till data i Visual Studio.

BindingSource-komponent som datakälla

Om du börjar lägga till objekt i komponenten BindingSource utan att först ange en lista som ska bindas till, fungerar komponenten som en datakälla i listformat och accepterar de här tillagda objekten.

Dessutom kan du skriva kod för att tillhandahålla anpassade "AddNew"-funktioner med hjälp av AddingNew händelsen, som aktiveras när AddNew metoden anropas innan objektet läggs till i listan. Mer information finns i BindingSource-komponentarkitektur.

För användare som behöver navigera i data i ett formulär kan du med komponenten BindingNavigator navigera och manipulera data i samordning med en BindingSource komponent. Mer information finns i BindingNavigator Control.

Datamanipulering

: BindingSource fungerar som en CurrencyManager för alla dess bindningar och kan därför ge tillgång till valuta- och positionsinformation om datakällan. I följande tabell visas de medlemmar som komponenten BindingSource tillhandahåller för att komma åt och manipulera underliggande data.

Medlem Beskrivning
Current egenskap Hämtar datakällans aktuella objekt.
Position egenskap Hämtar eller anger den aktuella positionen i den underliggande listan.
List egenskap Hämtar listan som är resultatet av utvärderingen av DataSource och DataMember. Om DataMember inte har angetts returnerar listan som anges av DataSource.
Insert metod Infogar ett objekt i listan i det angivna indexet.
RemoveCurrent metod Tar bort det aktuella objektet från listan.
EndEdit metod Tillämpar väntande ändringar på den underliggande datakällan.
CancelEdit metod Avbryter den aktuella redigeringsåtgärden.
AddNew metod Lägger till ett nytt objekt i den underliggande listan. Om datakällan implementerar IBindingList och returnerar ett objekt från AddingNew händelsen lägger du till det här objektet. Annars skickas begäran till listans AddNew metod. Om den underliggande listan inte är en IBindingListskapas objektet automatiskt via den offentliga parameterlösa konstruktorn.

Sortering och filtrering

Vanligtvis bör du arbeta med en ordnad eller filtrerad vy över datakällan. I följande tabell visas de medlemmar som BindingSource komponentdatakällan tillhandahåller.

Medlem Beskrivning
Sort egenskap Om datakällan är en IBindingListhämtar eller anger du ett kolumnnamn som används för sorterings- och sorteringsordningsinformation. Om datakällan är en IBindingListView och stöder avancerad sortering hämtar du flera kolumnnamn som används för sorterings- och sorteringsordningsinformation
Filter egenskap Om datakällan är en IBindingListView, hämtar eller anger uttrycket som används för att filtrera vilka rader som visas.

Se även