作为一个刚入门Silverlight的人来说,学习新知识就要做好笔记。我是刚入门。在不断在摸索。写这篇文章是让打算入门和刚入门的人有所了解Silverlight。这篇文章主要是讲的Silverlight 2种查询的方法。步入正题
第一步:引入命名空间 System.Windows.Controls.Data(后面会讲有什么用)
第二步:创建文件夹和相应的类。下面是我写的对应的文件夹和类
第三步 编写内容。
首先是 model文件夹下的类
public class Student
{
public string Name { get; set; }
public int Age { get; set; }
}
其次是viewmodel下的类
public class StudentViewModel:INotifyPropertyChanged
{
public StudentViewModel() {
Getstu();
}
public ObservableCollection<Student> Students { get; set; }
public ObservableCollection<Student> Getstu()
{
Students = new ObservableCollection<Student>()
{
new Student{ Name = "张三", Age = 21 },
new Student{Name = "李四", Age = 22 },
new Student{Name = "王五", Age = 23 },
};
return Students;
}
#region INotifyPropertyChanged 成员
public event PropertyChangedEventHandler PropertyChanged;
#endregion
第四步:编写前台内容
第一种方法:
<UserControl x:Class="ceshi.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
//第一步 引入System.Windows.Controls.Data 对应的是前面引入的命名空间
xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"
第二步//这个是绑定的viewmodel
xmlns:model="clr-namespace:ceshi.ViewModel"
d:DesignHeight="300" d:DesignWidth="400" xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk">
<UserControl.Resources>
第三步 //使用viewmodel 设置别名 StudentViewModel就是viewmodel下的类名
<model:StudentViewModel x:Key="page" />
</UserControl.Resources>
第四步 //看到DataContext 了吗?意思是整个Grid 都用哪个viewmodel 绑定数据
<Grid x:Name="LayoutRoot" Background="White" Height="280" Width="372" DataContext="{StaticResource page}">
//ItemsSource 绑定的是viewmodel的集合
<data:DataGrid AutoGenerateColumns="False" Height="190" HorizontalAlignment="Left" Margin="36,48,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="275" ItemsSource="{Binding Students}">
<data:DataGrid.Columns>
<data:DataGridTextColumn Header="姓名" Width="145" Binding="{Binding Name}" d:IsLocked="True"/>
<data:DataGridTextColumn Header="年龄" Width="130" Binding="{Binding Age}" d:IsLocked="True"/>
</data:DataGrid.Columns>
</data:DataGrid>
</Grid>
</UserControl>
第二种方法是:删除二,三,四步骤,在后台代码加入2句话。替代二三四三步
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
StudentViewModel model = new StudentViewModel();
this.DataContext = model;
}
}
写先到这里,有不懂的可以交流。我也是新手,有问题多多提出来!