WPFSilverlight的数据绑定设计为何如此复杂难用?

2026-05-27 05:090阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1464个文字,预计阅读时间需要6分钟。

WPF/Silverlight的数据绑定设计为何如此复杂难用?

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的数据绑定设计为何如此复杂难用?

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)再一个常见的场景是进行简单的判断或者简单的类型转换,这种应用非常常见。

阅读全文