案例地址:GitHub - microsoft/WPF-Samples: Repository for WPF related samples
一、运行界面
二、案例功能描述
实现DataSet数据绑定
三、分析代码
1、获取bookdata.mdb中的数据
var mdbFile = Path.Combine(AppDataPath, "BookData.mdb")
string connString = $"Provider=Microsoft.Jet.OLEDB.4.0 Data Source={mdbFile}";
var conn = new OldDbConnection(connString); //创建连接
var adapter = new OleDbDataAdapter(SELECT * FROM BookTable;", conn);//获取表里的数据
_myDataSet = new DataSet();
adapter.Fill(_myDataSet, "BookTable");
2、实现自定义Int值转换到Color类型的转换器
自定义转换器需要继承IValueConverter接口
实现Convert 和 ConvertBacke;
3、实现ListBoxItem的模板,同时绑定控件的数据
<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>
可以看到,TextBlock控件的Text绑定了DataSet中的字段名,特别的,在Background的绑定中,绑定的字段是Int类型,但同时绑定了自定义的类型转换器。
4、ListBox绑定DataSet
<ListBox Name="myListBox" Height="200"
ItemsSource="{Binding Path=BookTable}"
ItemTemplate ="{StaticResource BookItemTemplate}"/>
可以看到,ItemsSource绑定了名为BookTable的DataSet,同时ItemTemplate通过StaticResource设置了模板