1、MVP:Model-View-Presenter
2、MVC:Model-View-Controller
3、程序的本质:数据+算法
4、Binding不仅可以实现连接UI层和逻辑层,还可以在Binding中设置数据验证
5、属性的变化要通知到UI层,需要实现INotifyPropertyChanged接口
6、Binding的Path实际上会创建一个PropertyPath对象
7、Binding模型
7、一个典型的Binding(使用MVVM Light)
<TextBox
Width="200"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Text="{Binding UserName, Mode=TwoWay}" />
private string userName;
public string UserName
{
get { return userName; }
set
{
if (value != userName)
{
userName = value;
RaisePropertyChanged(() => this.UserName);
}
}
}
8、Binding对Source的要求并不苛刻,只要它是一个对象,并且通过属性(Property)公开自己的数据
9、BindingMode:控制数据流向
//
// Summary:
// 描述binding中的数据流方向
public enum BindingMode
{
//
// 双向改变
//