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编辑  收藏  举报

导航

作者:LucyTangLucyTang's Blog on 博客园
出处:http://www.cnblogs.com/jing870812/

本作品由LucyTang创作,采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。 任何转载必须保留完整文章,在显要地方显示署名以及原文链接。如您有任何疑问或者授权方面的协商,请给我留言