实现一个DataGrid的Select All的功能,使用的是MVVM架构,完成后的截图如下:
1. 新建一个Silverlight Application,新建一个ViewModels文件夹,在文件夹里添加一个类UserViewModel,该ViewModel是DataGrid显示的每一行的数据的绑定ViewModel。
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.ComponentModel;
namespace SelectAllAndOrder.ViewModels
{
public class UserViewModel:INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private static int i = 0;
//带有事件Handler的构造函数,每生成一个新的UserViewModel就给他绑定一个eventHandler
public UserViewModel(PropertyChangedEventHandler eventHandler)
{
this.PropertyChanged += eventHandler;
}
public string Name
{
get { return "Name" + i++; }
}
private bool _isSelected;
public bool IsSelected
{
get { return _isSelected; }
set
{
_isSelected = value;
if (this.PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("IsSelected"));
}
}
}
}
}
2. 新建一个SelectAllViewModel类,用过MainPage的ViewModel使用。
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Do