1.调集作为数据源
首先我们先创建一个模型类
public class Student { public int ID { get; set; } public String Name { get; set; } }
然后我们创建我们的页面构造
<StackPanel Width="300" Height="300" HorizontalAlignment="Left"> <ListView Name="listView1"> <ListView.View> <GridView> <GridViewColumn Header="编号" DisplayMemberBinding="{Binding ID}" Width="100"></GridViewColumn> <GridViewColumn Header="姓名" DisplayMemberBinding="{Binding Name}" Width="100"></GridViewColumn> </GridView> </ListView.View> </ListView> </StackPanel>
在这里我们使用了ListView控件和GridView控件来显示数据,这两个控件从外貌来看应该属于同一级另外控件。实际上并非如此!ListView是ListBox的派生类,而GridView是ViewBase的派生类,ListView中的View是一个ViewBase东西,所以,GridView可以做为ListView的View来使用而不能看成独立的控件来使用。这里使用理念是组合模式,即ListView由一个View,但是至于是GridVIew还是其它类型的View,由措施员本身选择。其次,GridView的内容属性是Columns,这个属性是GridViewColumnCollection类型东西。因为XAML撑持对内容属性的简写,可以省略<GridView.Columns>这层标签,直接在GridView内部界说<GridViewColumn>东西,GridViewColumn中最重要的一个属性是DisplayBinding(类型是BindingBase),使用这个属性可以指定这一列使用什么样的Binding去关联数据-----这与ListBox有些差别,ListBox使用的是DisplayMemberPath属性(类型是String)。如果想用更庞大的布局来暗示这一标题或数据,则可为GridViewColumn设置Head Template和Cell Template,它们的类型都是DataTemplate
接下来下后台代码
IList<Student> list = new ObservableCollection<Student>() { new Student(){ID=1,Name="狗娃"}, new Student(){ID=2,Name="狗剩"}, new Student(){ID=3,Name="铁蛋"} }; this.listView1.ItemsSource = list;
只需在结构函数中创建东西并绑定到ListView上即可,然后运行就可以看到已经绑定完毕
接下来看一下ObservableCollection这个调集,我们可以看到在这里使用的是ObservableCollection调集而并非泛泛的List调集,那么为什么呢,因为ObservableCollection调集实现了INotifyCollectionChanged接口,也就是可以双向绑定。
2.ADO.NET中DataTable东西做为数据源在wpf中,是允许将DataTable直接做为Binding的数据源的,下面以一个例子做为参考
控件还可以用上面的控件,只需该数据源即可
首先先创建一个用于创建DataTable的要领
public DataTable CreateDt() { DataTable dt = new DataTable(); DataColumn[] dc = new DataColumn[] { new DataColumn("ID"), new DataColumn(){ColumnName="Name"} }; dt.Columns.AddRange(dc); return dt; }
然后再结构函数中创建DataTable,赋予值并绑定即可
DataTable dt = CreateDt(); DataRow dr = dt.NewRow(); dr[0] = 1; dr[1] = "狗娃"; dt.Rows.Add(dr); dr = dt.NewRow(); dr[0] = 2; dr[1] = "狗剩"; dt.Rows.Add(dr); dr = dt.NewRow(); dr[0] = 1; dr[1] = "铁蛋"; dt.Rows.Add(dr); //将数据源设置为Dt的视图 this.listView1.ItemsSource = dt.DefaultView;
3.使用XML数据作为数据源WPF供给了两套措置惩罚惩罚XML的类库:
1.切合DOM(Document Object Model 文档东西模式)标准类库:XmlDocument.XmlElement,XmlNode等类,这套类型特点中规中矩,成果强大,但也背负了太多的XML传统和庞大