VM代码:
V代码(版本1):
没有指定DataContext的类型,
所以下面的绑定并不知道P1和P3到底是什么,
也就无法在代码编辑时检测出绑定是否正确.
如果写错了,只能等到程序运行并打开这个窗口时报错才能知道.
V代码(版本2):
通过d:DataContext指定了DataContext的类型,
所以下面的绑定可以知道是要绑定到MainWindowViewModel这个类型的P1和P3属性上,
进而可以在代码编辑时就检测出绑定是否正确.
而且使用VS的F2重命名该属性时,xaml中和c#中会同步更改,可以保证不会漏改导致bug.
如果没有这种保证,就很容易出现不敢改代码或改起来畏首畏尾的情况.这对项目的可持续发展是非常不利的.