Nasıl yapılır: ADO.NET Veri Kaynağına Bağlama

bu örnek, bir Windows Presentation Foundation (WPF) ListBox denetiminin bir ADO.NET nasıl bağlanacağını gösterir DataSet .

Örnek

Bu örnekte, bir OleDbConnection nesnesi Access MDB bağlantı dizesinde belirtilen bir dosya olan veri kaynağına bağlanmak için kullanılır. Bağlantı kurulduktan sonra bir OleDbDataAdapter nesne oluşturulur. OleDbDataAdapternesne, veritabanından kayıt kümesini almak için bir select Yapılandırılmış Sorgu Dili (SQL) ifadesini yürütür. SQL komutunun sonuçları, ' DataTableDataSet nin metodu çağırarak içinde depolanır FillOleDbDataAdapter . DataTableBu örnekte adı verilir BookTable . Örnek daha sonra DataContext öğesinin özelliğini ListBox nesnesine ayarlar 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

Daha sonra öğesinin özelliğini ' a bağlayabiliriz ItemsSourceListBoxBookTableDataSet :

<ListBox Name="myListBox" Height="200"
  ItemsSource="{Binding Path=BookTable}"
  ItemTemplate  ="{StaticResource BookItemTemplate}"/>

BookItemTemplate , DataTemplate verilerin nasıl göründüğünü tanımlar:

<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>

, IntColorConverter Bir int renge dönüştürür. Bu dönüştürücünün kullanımıyla, BackgroundTextBlock değeri NumPages 350 ' den küçükse ve aksi halde kırmızıysa, üçüncüsü rengi yeşil görünür. Dönüştürücünün uygulanması burada gösterilmez.

Ayrıca bkz.