ListBox/ItemsControl的使用
一、介绍
ListBox是继承自ItemsControl的,都是用于展现数据列表,可以在前台XAML中写死,但这种方法使用不灵活;可以动态绑定数据源,还可以定义模板,定义显示的样式这咱方式利用率较高。下面就来一一看下如何实现吧~
二、具体实现
第一种
代码展示:
<ListBox Margin="10,20,0,0,">
<ListBoxItem>
<Border BorderThickness="0,0,0,1" BorderBrush="#FF4BB1A8" Height="80" Width="450">
<Canvas>
<Image Source="/DataTemplateSelectorDemo;component/Images/fries.png"></Image>
<TextBlock Text="署条" Margin="100,20,0,0"></TextBlock>
</Canvas>
</Border>
</ListBoxItem>
。
。
。
</ListBox>
第二种 动态绑定,前台定义模板
代码实现:
前台
<ListBox x:Name="listGoods" Margin="10,20,0,0" ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<Border BorderThickness="0,0,0,1" BorderBrush="#FF4BB1A8" Height="80" Width="450">
<Canvas>
<Image Source="{Binding IconUrl}"></Image>
<TextBlock Text="{Binding GoodsName}" Margin="100,20,0,0"></TextBlock>
</Canvas>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
后台
List<Goods> list = new List<Goods>();
Goods good = new Goods();
good.IconUrl = "/Images/fries.png";
good.GoodsName = "署条";
list.Add(good);
good = new Goods();
good.IconUrl = "/Images/Hamburger.png";
good.GoodsName = "汉堡包";
list.Add(good);
good = new Goods();
good.IconUrl = "/Images/icecream.png";
good.GoodsName = "冰淇淋";
list.Add(good);
listGoods.ItemsSource = list;
三、根据条件动态绑定
若需要根据绑定的数据再次进行处理,如对于绑定的数据决定是否显示,可以利用Convert来实现。
如:
<local:ConvertGetAward x:Key="getaward"></local:ConvertGetAward>
<Button Foreground="White" Tag="{Binding TaskID}" Content="领取"
Name="btnGet" Visibility="{Binding award, Converter={StaticResource getaward}}" />
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value.ToString()== "3")
{
return "Collapsed";
}
else
{
return "Visible";
}
}
上面列出了主要的的代码,主要就是Button通过绑定award字段,然后getaward类的转换实现显示或隐藏。
当然,listBox的用法还很多,在wp7对于列表的显示也非常多,需要研究的还很多,希望在以后的运用中不断总结。
posted on 2011-08-10 23:12 ShinyTang 阅读(1194) 评论(3) 编辑 收藏 举报