كيفية القيام بما يلي: الربط إلى مصدر بيانات ADO
يوضح هذا المثال كيفية ربط تحكم Windows Presentation Foundation (WPF)ListBox فى ADO.NETDataSet.
مثال
في هذا المثال، OleDbConnection الكائن يستخدم للاتصال إلى مصدر البيانات وهو Access MDB الملف المحدد في سلسلة الاتصال. بعد إنشاء الاتصال OleDbDataAdpater كائن يتم إنشاؤه. OleDbDataAdpater كائن تنفيذ حدد لغة الاستعلامات المركبة (SQL) عبارة عن بيان رمزية لاسترداد السجلات من قاعدة البيانات. النتائج من SQL الأمر المخزنة في DataTable من DataSet عن طريق استدعاء Fill أسلوب OleDbDataAdapter. DataTable في هذا المثال تسمى BookTable. لعمل عمود ،يعين المثال الخاصية DataContext الخاصة بـ ListBox إلى DataSet.
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
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;
}
يمكننا ربط ثم ItemsSource خاصية ListBox الى BookTable من DataSet:
<ListBox Name="myListBox" Height="200"
ItemsSource="{Binding Path=BookTable}"
ItemTemplate ="{StaticResource BookItemTemplate}"/>
BookItemTemplate هوDataTemplate الذي يعرف كيفية ظهور البيانات:
<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 تحويل int الى لون. مع استخدام هذا المحول Background لون الثالثة TextBlock يظهر الأخضر إذا القيمة NumPages هو أقل من 350 أحمر وإلا. تطبيق المحول لا يظهر هنا.