Silverlight中绑定自定义样式的ListBox,要注意以下几点
- ItemTemplate 指定的属性可以单独放在一个资源文件中.
- 要绑定的对象,如一个ItemTestData,要从接口INotifyPropertyChanged继承,所使用到的绑定的set属性要调用NotifyPropertyChanged(“属性名称”);
- 如果要绑定数据到Item对象, 自定义的ItemTemplate 样式,要在其根LayoutRoot 中指定绑定名称.
假设其根是一个Grid,一个Item由2个TextBlock组成,分别要绑定到一个ItemTestData对象的 Data1和Data2上去, 那么,在Grid下首先要指定一个ItemTestData的别名
1
2
3
4
|
<Grid.Resources>
<src:ItemTestData x:Key="itemTestData"/>
</Grid.Resources>
注意src是ItemTestData所在的命名空间,x:Key为指定一个别名
|
1
|
然后在TextBlock中就可以指定绑定的属性
|
1
2
3
4
|
<Grid.Resources>
<src:ItemTestData x:Key="itemTestData"/>
</Grid.Resources>
注意src是ItemTestData所在的命名空间,x:Key为指定一个别名
|
1
|
然后在TextBlock中就可以指定绑定的属性
|
1
|
<TextBlock x:Name="someData" Text="{Binding Data1}"/>
|
1
|
最后,别忘了指定ListBox的ItemsSource到一个ItemTestData的集合上.\\
|
如果在Item中要加入控件的事件,还要注意的就是资源不能放到全局的资源文件XAML中去了,事件处理需要cs文件
最后发现,WPF的绑定确实是方便又简单