Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet exemple montre comment lier un contrôle wpF (Windows Presentation Foundation) ListBox à un ADO.NET DataSet
.
Exemple :
Dans cet exemple, un objet OleDbConnection
est utilisé pour se connecter à la source de données, qui est un fichier Access MDB
spécifié dans la chaîne de connexion. Une fois la connexion établie, un objet OleDbDataAdapter
est créé. L’objet OleDbDataAdapter
exécute une instruction SQL (Structured Query Language) select pour récupérer le jeu d’enregistrements de la base de données. Les résultats de la commande SQL sont stockés dans une DataTable
du DataSet
en appelant la méthode Fill
du OleDbDataAdapter
. La DataTable
de cet exemple est nommée BookTable
. L’exemple définit ensuite la propriété DataContext de l'ListBox sur l’objet DataSet
.
DataSet myDataSet;
private void OnInit(object sender, EventArgs e)
{
string mdbFile = Path.Combine(AppDataPath, "BookData.mdb");
string connString = string.Format(
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}", mdbFile);
OleDbConnection conn = new OleDbConnection(connString);
OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM BookTable;", conn);
myDataSet = new DataSet();
adapter.Fill(myDataSet, "BookTable");
// myListBox is a ListBox control.
// Set the DataContext of the ListBox to myDataSet
myListBox.DataContext = myDataSet;
}
Private myDataSet As DataSet
Private Sub OnInit(ByVal sender As Object, ByVal e As EventArgs)
Dim mdbFile As String = Path.Combine(AppDataPath, "BookData.mdb")
Dim connString As String = String.Format("Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}", mdbFile)
Dim conn As New OleDbConnection(connString)
Dim adapter As New OleDbDataAdapter("SELECT * FROM BookTable;", conn)
myDataSet = New DataSet()
adapter.Fill(myDataSet, "BookTable")
' myListBox is a ListBox control.
' Set the DataContext of the ListBox to myDataSet
myListBox.DataContext = myDataSet
End Sub
Nous pouvons ensuite lier la propriété ItemsSource du ListBox à BookTable
du DataSet
:
<ListBox Name="myListBox" Height="200"
ItemsSource="{Binding Path=BookTable}"
ItemTemplate ="{StaticResource BookItemTemplate}"/>
BookItemTemplate
est la DataTemplate qui définit la façon dont les données s’affichent :
<StackPanel.Resources>
<c:IntColorConverter x:Key="MyConverter"/>
<DataTemplate x:Key="BookItemTemplate">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="250" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Path=Title}" Grid.Column="0"
FontWeight="Bold" />
<TextBlock Text="{Binding Path=ISBN}" Grid.Column="1" />
<TextBlock Grid.Column="2" Text="{Binding Path=NumPages}"
Background="{Binding Path=NumPages,
Converter={StaticResource MyConverter}}"/>
</Grid>
</DataTemplate>
</StackPanel.Resources>
La IntColorConverter
convertit un int
en couleur. Avec l’utilisation de ce convertisseur, la couleur Background du troisième TextBlock apparaît verte si la valeur de NumPages
est inférieure à 350 et rouge dans le cas contraire. L’implémentation du convertisseur n’est pas affichée ici.
Voir aussi
- BindingListCollectionView
- Vue d’ensemble de la liaison de données
- Sujets de type "comment faire"
.NET Desktop feedback