El data binding és una tècnica general que enllaça dues fonts d’informació/dades i manté els continguts sincronitzats.
Aquesta tècnica permet enllaçar les següents fonts de dades:
Propietats de UIElements (controls WPF)
Objectes de dades (classes, llistes, …)
ADO .NET (bases de dades)
Dades XML
Dades associades a Web Services
Normalment, el binding, el forma quatre components:
binding target (vermell)
target property (blau)
binding source (verd)
path a una propietat o valor del binding source utilitzat (rosa)
<LabelContent =”{Binding Element Name=Slider1, Path=Values}” Height=”25” Width=”100”</Label>
Element Name: Especifica l’element utilitzat com a Binding Source.
Path: Especifica el camí de la Source Property, que és la propietat d’origen que volem enllaçar.
Source: Especifica l’element utilitzat com a Binding Source que no s’està fent Binding a un control WPF.
Binding Mode
La propietat Mode especifica com es comporten les propietats enllaçades quan els seus valors es modifiquen.
Default: Utilitzarà el mode per defecte per a la propietat destí.
OneTime: Indica que s’actualitzarà la propietat destí en iniciar l’aplicació o el qual el DataContext canviï però només una vegada.
OneWay: Indica que s’actualitzarà la propietat destí sempre que es produeixi un canvi en la propietat origen però mai en sentit contrari.
OneWayToSource: Indica que s’actualitzarà la origen quan la propietat destí canviï, els canvis en la propietat origen no tindran efecte.
TwoWay: Indica que qualsevol canvi en les propietats origen o destí actualitza l’altra automàticament.
Exemples Binding
En aquest exemple, hi ha un StackPanel i dins un TextBox i un Slider. El TextBox té una amplada de 100 i un marge de 160. Li hem posat un nom i dins el Text hem ficat el Binding. En el ElementName hem ficat a quin objecte està vinculat (ElMeuSlider), la ruta d’enllaç com a Path (Value) i el Mode que l’hem ficat per defecte (Default) que és el TwoWay. També hem ficat un Slider per a ser enllaçat al TextBox amb una rang de 0 a 100.
En aquest exemple, hi ha un StackPanel i dins un TextBox i un Slider. El TextBox té una amplada de 100 i un marge de 160. Li hem posat un nom i dins el Text hem ficat el Binding. En el ElementName hem ficat a quin objecte està vinculat (ElMeuSlider), la ruta d’enllaç com a Path (Value) i el Mode que l’hem ficat és el OneTime. També hem ficat un Slider per a ser enllaçat al TextBox amb una rang de 0 a 100.
En aquest exemple, hi ha un StackPanel i dins un TextBox i un Slider. El TextBox té una amplada de 100 i un marge de 160. Li hem posat un nom i dins el Text hem ficat el Binding. En el ElementName hem ficat a quin objecte està vinculat (ElMeuSlider), la ruta d’enllaç com a Path (Value) i el Mode que l’hem ficat és el OneWay. També hem ficat un Slider per a ser enllaçat al TextBox amb una rang de 0 a 100.
En aquest exemple, hi ha un StackPanel i dins un TextBox i un Slider. El TextBox té una amplada de 100 i un marge de 160. Li hem posat un nom i dins el Text hem ficat el Binding. En el ElementName hem ficat a quin objecte està vinculat (ElMeuSlider), la ruta d’enllaç com a Path (Value) i el Mode que l’hem ficat és el OneWayToSource. També hem ficat un Slider per a ser enllaçat al TextBox amb una rang de 0 a 100.
INotifyPropertyChanged
WPF ens proporciona la classe ObservableCollection que implementa la interfície INotifyPropertyChanged. Qualsevol propietat de la col·lecció implementa la interfície INotifyPropertyChanged.
Aquesta col·lecció de dades ens permet sincronitzar els canvis que es produeixen a les propietats de les dades amb els ‘items’ del control associat mitjançant binding.