...
Note | |||||
---|---|---|---|---|---|
注意components-context.xml文件的声明中需要引入spring-dorado-7.1.xsd,否则无法完全支持下面介绍的各项功能。例如:
|
动态id
上面的例子中,我们介绍了一个由单一控件封装而成的组装控件,不过在其实应用的场景中,组转控件往往不会这么简单,由多个控件封装成的组装控件才能更加凸显出此功能的强大。为了让多个控件形成一个整体,我们应该使用容器型的控件或者具体容器特征的控件作为组装控件的根,例如:Container、Panel等或TabControl、SplitPanel等。可是一旦一个组装控件中包含了多个子控件,我们很容易就会碰到一个新问题——这些子控件之间如何进行相互的访问?上面的例子中,我们介绍了一个由单一控件封装而成的组装控件,不过在其实应用的场景中,组装控件往往不会这么简单,由多个控件封装成的组装控件才能更加凸显出此功能的强大。为了让多个控件形成一个整体,我们应该使用容器型的控件或者具体容器特征的控件作为组装控件的根,例如:Container、Panel等或TabControl、SplitPanel等。可是一旦一个组装控件中包含了多个子控件,我们很容易就会碰到一个新问题——这些子控件之间如何进行相互的访问?
比如组装控件中有一个DataSet和DataGrid,我们希望这里的DataGrid能够绑定到这个DataSet;或者组装控件中有一个Button和一个TextEditor,我们希望点击Button时能够为TextEditor赋一个值。在传统的页面开发模式下,这些都不是什么难事,只要给控件定义一个id,就可以通过这个id进行绑定操作或者api访问了。然而在组装控件中我们却不能这样做,因为id对于一个View而言必须是唯一的,如果我们给上述这些子控件定义一个固定的id,我们难保将来这个组装控件不会再某个View中被使用两次,如果这种情况出现必然会导致Dorado抛出id重复的异常。要解决这个问题,我需要给这些子控件定义一个“动态id”。
...