Bind to an ADO.NETDataSet
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:c="clr-namespace:WpfApplication1"
Title="ADODataSetSample" Loaded="OnInit" Background="White" Height="250" Width="450">
<StackPanel>
<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"/>
<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>
<ListBox Name="myListBox" Height="200"
ItemsSource="{Binding Path=BookTable}"
ItemTemplate ="{StaticResource BookItemTemplate}"/>
<Button Click="OnClick">Add Record</Button>
</StackPanel>
</Window>
//File:Window.xaml.vb
Imports System
Imports System.Collections
Imports System.ComponentModel
Imports System.Data
Imports System.Data.OleDb
Imports System.IO
Imports System.Globalization
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Data
Imports System.Windows.Documents
Imports System.Collections.Generic
Namespace WpfApplication1
Public Partial Class Window1
Inherits Window
Public Sub New()
Me.InitializeComponent()
End Sub
Private myDataSet As DataSet
Private Sub OnInit(sender As Object, e As EventArgs)
Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\BookData.mdb")
Dim adapter As New OleDbDataAdapter("SELECT * FROM BookTable;", conn)
myDataSet = New DataSet()
adapter.Fill(myDataSet, "BookTable")
myListBox.DataContext = myDataSet
End Sub
Private Sub OnClick(sender As Object, e As RoutedEventArgs)
Dim myDataTable As DataTable = myDataSet.Tables("BookTable")
Dim row As DataRow = myDataTable.NewRow()
row("Title") = "A"
row("ISBN") = "0-1111-1111-2"
row("NumPages") = 1
myDataTable.Rows.Add(row)
End Sub
End Class
Public Class IntColorConverter
Implements IValueConverter
Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.Convert
Dim numValue As Integer = CInt(value)
If numValue < 50 Then
Return System.Windows.Media.Brushes.Green
Else
Return System.Windows.Media.Brushes.Red
End If
End Function
Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.ConvertBack
Return Nothing
End Function
End Class
End Namespace
Related examples in the same category