silverlight TabControl、ListBox 使用之tips

1、控件的 ItemsSource 和 Items 的区别:
     ItemsSource 只是继承于 IEnumerable 接口 , 只是一个接口而已,所以在构造初期是不会被实例化的。
     Items:  Items是一个 ItemCollection ,是一个实际的一个容器,所以在实例化时是有值的。
     所以在使用的时候,如果我们的后台数据是在运行时才准备的话,就使用 ItemsSource , 如果只是一些界面元素上的数据,不需要在运行时赋值时而是一开始准备好的话,就可以在Items中赋值。
      也就是说 ItemsSource 这个值是运行时可以变的,是我们赋值的,只有运行时才会发现数据源在哪。而Items是已经有了一个容器,也就是说它已经在内部自己赋值了,我们要做就只是在里面Add值。
 
 
如果是两个属性一起赋值的话:
1、如果是在设计时(blend里面)两个都有的话,那它会在你设置ItemsSource时,自动remove 掉Items属性里面的元素。
2、如果是在运行时的,两个属性都设置的时候,会出错!
 
使用这两个赋值要注意的:
 
Items :如果是以这样方式来add的话,每一个 Item 对于不同的控件是不同的。
TabControl  是要add 一个一个的TabItem
ListBox       是要add  一个一个的 ListBoxItem
 
 
ItemsSource : 如果是使用这个的话,只要数据源是继承于 IEnumable接口的就都可以。
例如:Array , List<T> ,  Collection<T> , Dictionary<T>
可以看到ItemsSource 形式有这么多种,那么在控件中是怎么表示的,这个SL是不知道的,所以默认情况下,它
只会将你这个ItemsSource里面的类名显示出来,要真正显示出来有意义的值,我们就要定制一个模板,绑定类里的值。
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值