Mega Code Archive

 
Categories / C# / WPF
 

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.cs using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Data.OleDb; using System.IO; using System.Globalization; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Collections.Generic; namespace WpfApplication1 {   public partial class Window1 : Window   {       public Window1()       {           this.InitializeComponent();       }     DataSet myDataSet;     private void OnInit(object sender, EventArgs e)     {       OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\\BookData.mdb");       OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM BookTable;", conn);       myDataSet = new DataSet();       adapter.Fill(myDataSet, "BookTable");       myListBox.DataContext = myDataSet;     }     private void OnClick(object sender, RoutedEventArgs e)     {       DataTable myDataTable = myDataSet.Tables["BookTable"];       DataRow row = myDataTable.NewRow();       row["Title"] = "A";       row["ISBN"] = "0-1111-1111-2";       row["NumPages"] = 1;       myDataTable.Rows.Add(row);     }   }     public class IntColorConverter : IValueConverter     {         public object Convert(object value, Type targetType, object parameter, CultureInfo culture)         {             int numValue = (int)value;             if (numValue < 50)                 return System.Windows.Media.Brushes.Green;             else                 return System.Windows.Media.Brushes.Red;         }         public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)         {             return null;         }     }   }