WPFSilverlight的数据绑定设计为何如此复杂难用?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1464个文字,预计阅读时间需要6分钟。
WPF/Silverlight数据绑定设计精髓,几乎每次使用都要在心中敲一次警钟,不知是哪家公司设计的,就像ASP.Net中的ViewState一样,颇为独特:(1)难以使用,一些常见的简单场合配合使用。
WPF/Silverlight的数据绑定体系设计的真糟糕,几乎每用一次就要在心中骂一次,不知道是哪个家伙设计的,就像Asp.Net中的ViewState一样,拙劣得很:
(1)很难用,一些常见的简单场合使用起来很麻烦;
(2)想整个搞清楚很杀脑细胞,不是循序渐进的过程;
(3)不整个搞清楚就用不好,或者用的很别扭。
总之,就是一个这样的怪胎——简单的场景下使用很麻烦(增加了很多工作量),复杂的场景下使用很绕弯(也减少了不少工作量)。抄起原子弹当锤子用。一般的开发,哪有那么多复杂的场景?大部分情况都是简单的场景。我们需要的是一个在简单的场景下使用简单,在复杂的场景下使用略微复杂的设计,就像《.Net设计规范》中标榜的那样应该是一个倾斜的山坡(下图左),而不是像屋檐(下图右)。
下面开骂,参考对象是Flex哥哥:
(1)最常用的场景是把A或者A的属性F绑定到B的属性Source上;
WPF/SL下:
Source="{Binding ElementName=A, Path=F}"
Flex下:
Source="{A.F}"
这是最最常用的场景,WPF/SL罗哩罗嗦不说,还是弱类型性质的绑定,很容易写错,写错了编译器也不报错。
(2)再一个常见的场景是进行简单的判断或者简单的类型转换,这种应用非常常见。
本文共计1464个文字,预计阅读时间需要6分钟。
WPF/Silverlight数据绑定设计精髓,几乎每次使用都要在心中敲一次警钟,不知是哪家公司设计的,就像ASP.Net中的ViewState一样,颇为独特:(1)难以使用,一些常见的简单场合配合使用。
WPF/Silverlight的数据绑定体系设计的真糟糕,几乎每用一次就要在心中骂一次,不知道是哪个家伙设计的,就像Asp.Net中的ViewState一样,拙劣得很:
(1)很难用,一些常见的简单场合使用起来很麻烦;
(2)想整个搞清楚很杀脑细胞,不是循序渐进的过程;
(3)不整个搞清楚就用不好,或者用的很别扭。
总之,就是一个这样的怪胎——简单的场景下使用很麻烦(增加了很多工作量),复杂的场景下使用很绕弯(也减少了不少工作量)。抄起原子弹当锤子用。一般的开发,哪有那么多复杂的场景?大部分情况都是简单的场景。我们需要的是一个在简单的场景下使用简单,在复杂的场景下使用略微复杂的设计,就像《.Net设计规范》中标榜的那样应该是一个倾斜的山坡(下图左),而不是像屋檐(下图右)。
下面开骂,参考对象是Flex哥哥:
(1)最常用的场景是把A或者A的属性F绑定到B的属性Source上;
WPF/SL下:
Source="{Binding ElementName=A, Path=F}"
Flex下:
Source="{A.F}"
这是最最常用的场景,WPF/SL罗哩罗嗦不说,还是弱类型性质的绑定,很容易写错,写错了编译器也不报错。
(2)再一个常见的场景是进行简单的判断或者简单的类型转换,这种应用非常常见。

