WPF数据绑定之Ado.net的数据库连接绑定

wpf中绑定数据库数据,也就是Ado.net的数据绑定和asp.net有点类似,但是差别还是比较大的

这次以dataset和listbox来说明
以前只要listbox绑定数据源和制定绑定的字段,就会生成listbox默认的样子出来,而且样子不能改变

但是现在在wpf中,数据控件没有默认的样子,显示的样式可以通过DataTemplate数据模板来设置。
所谓数据模板相当于asp.net数据控件比如datagrid,gridview中数据模板一样,可以让数据显示成列表或者表格,完全由数据模板内的xaml来设置

读取数据的方法还是ado.net的方法没有什么差别

后台代码
 public DataSet GetData()
        {
            string sql = "select top 10 ID,Name from a";
            DataSet ds = SqlHelper.ExecuteDataset(SqlHelper.ConString, CommandType.Text, sql);
            return ds;
        }
//window加载的时候绑定数据
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            this.lb.DataContext = GetData();//这个地方lb就是listbox的名字,这里设置绑定数据源
        }
前台

 <ListBox Name="lb" ItemsSource="{Binding Path=Table}" ItemTemplate="{StaticResource dt}">
        </ListBox>
//ItemsSourcelistbox中items要绑定数据源,我们listbox的数据源是dataset,listbox中items当然要显示dataset中的某个表格,dataset默认一个表的时候,表的名字就是Table。
//ItemTemplate这个地方是个关键的新鲜玩意,这个就是数据模板,来指示数据怎么显示,这是一个资源,设置在资源中
<StackPanel.Resources>
            <DataTemplate x:Key="dt">
                <StackPanel>
                    <Label Name="lb" Content="{Binding Path=ID}"></Label>
                    <Button Name="btn" Content="{Binding Path=Name}"></Button>
                </StackPanel>
            </DataTemplate>
        </StackPanel.Resources>
//这个地方简单的就是用stackpanel来显示item的内容,一个label,一个Button来绑定表的字段
这个datatempalte可以设置其他任何的xaml样式,或者grid等等。应该来说显示样式还是比较方便的

本文使用Blog_Backup未注册版本导出,请到soft.pt42.com注册。

posted @ 2010-05-05 18:03  音乐啤酒  阅读(1211)  评论(0编辑  收藏  举报