作为一个刚入门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;
}
}

写先到这里,有不懂的可以交流。我也是新手,有问题多多提出来!

作者: 高导 发表于 2011-07-22 11:53 原文链接

推荐.NET配套的通用数据层ORM框架:CYQ.Data 通用数据层框架
新浪微博粉丝精灵,刷粉丝、刷评论、刷转发、企业商家微博营销必备工具"