Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1077986
  • 博文数量: 403
  • 博客积分: 10272
  • 博客等级: 上将
  • 技术积分: 4407
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 14:22
文章分类

全部博文(403)

文章存档

2012年(403)

分类: 虚拟化

2012-03-07 18:27:07

今天我收到了有关如何在WP7使用ListBox的几个问题。在这个小教程,我将给予我们的答案:

注意:你可以查看以供参考。

问题1:WP7上,有没有填充ListBox的简单方法?

:ListBox是ItemsControl中的一种,可以以各种方式的数据填充它。基本上你可以直接使用ListBoxItems填充ListBox控件,或使用ItemsSource属性将其绑定到一个项目集。请注意,如果您希望Listbox能自动更新其项目集合(添加/删除/插入等)是一个很好的选择:

的ObservableCollection代表一个动态的数据集,在项目时被添加,删除,或整个列表被刷新时会发出相应通知“。

问题2:如何定义的ItemsPanel?什么是ItemsPanel?

:ItemsPanel是一个ItemsControl中的用于排布items的 panel,并可以从任何panel类派生,甚至是你自己写的自定义panel。(如果是这样,是不是意味着,你可以写任意复杂的listbox,比如每行能放2个元素的?呵呵)

默认ListBox的template是VirtualizingStackPanel。

“要影响ListBox中的items的布局,您可以指定“

下面有代码,以供参考。

在这里我不得不感谢一直支持我的版主,是他让我提起兴趣写了这么一篇文章,再次感谢,一个非常不错的,后面我也将再次向大家发布几篇高质量文章,请大家到卤面上找我吧,呵呵

进入正题:

问题3您能否给我们一个如何在ListBox中绑定图像的例子吗?

:下面有代码,以供参考。

问题4:我可以对Image,使用外部的 image Uri吗?

:您可以使用外部URI,但要记住设置UriKind.Absolute,如下

this.logo.Source =new BitmapImage(new Uri(@"",UriKind.Absolute));

问题5:我如何使用在ListBox中使用WrapPanel布局?

:您可以使用从Silverlight for WindowsPhone7 toolkit 中的WrapPanel。在我后面的文章中我会写一篇深入分析WrapPanel 的文章,静请期待哦(直接加我微薄拉,,关注最新消息)

下面是例子代码

"ContentPanel" Grid.Row="1" Margin="12,0,12,0">
"logo" Stretch="None"/>
"DataBound ListBox"/>
"list">







"5">
"{Binding ImageUri}" Stretch="None"/>
"{Binding Text}"/>




public class SampleData
{
public string Text
{
get;
set;
}

public string ImageUri
{
get;
set;
}
}

public partial class MainPage : PhoneApplicationPage
{
public MainPage()
{
InitializeComponent();
ObservableCollection dataSource = new ObservableCollection();

dataSource.Add(new SampleData() { ImageUri = "Images/appbar.close.rest.png", Text = "CLose" });
dataSource.Add(new SampleData() { ImageUri = "Images/appbar.delete.rest.png", Text = "Delete" });
dataSource.Add(new SampleData() { ImageUri = "Images/appbar.download.rest.png", Text = "Download" });
dataSource.Add(new SampleData() { ImageUri = @"http://www.codewp7.com/upload/appwall/wallimage.png", Text = "Logo" });
dataSource.Add(new SampleData() { ImageUri = @"http://www.codewp7.com/upload/appwall/wallimage.png", Text = "Logo" });

this.list.ItemsSource = dataSource;

this.logo.Source = new BitmapImage(new Uri(@"",UriKind.Absolute));
}
}

我希望你能喜欢我的文章!如果你有更多想法,请到 (codewp7.com)问答区联系我,我会很高兴知道你在想什么。同时wp7交流QQ群172765887中,也能找到我的身影,感谢大家,也欢迎大家关注我的微薄()


阅读(708) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~