关于ListBox绑定的一个问题,关于这点还是不明白
ListBox绑定一个WebService传递过来的对象数组有什么特别要求吗?为什么我都已经拿到了数组,做好了list1.ItemsSource = persons;页面却不显示listbox绑定的值。 (代码如下)CS处:
这个是RageImages类:
前端XAML代码:
这样操作下来我debug的时候已经拿到值了。但是绑定没显示 --------------------编程问答-------------------- 图片挂了 我重新贴代码
CS处:
var rageImages = new List<RageImages>();
for (var i = 0; i < e.Result.Count; i++)
{
rageImages.Add(new RageImages { Title = e.Result.ElementAt(i).Title, LikeNum = e.Result.ElementAt(i).Likenum });
}
ImageInfolist.ItemsSource = rageImages;
定义的RageImages类:
public class RageImages
{
public string LikeNum { get; set; }
public string Title { get; set; }
}
前端XAML代码
<ListBox Name="ImageInfolist" HorizontalAlignment="Stretch" VerticalContentAlignment="Stretch">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<HyperlinkButton Grid.Column="0" Content="{Binding Title}" FontSize="30" />
<TextBlock Grid.Column="1" Text="{Binding LikeNum}" FontSize="30" />
<Button Grid.Column="2" Content="保存" Name="edior" />
<Button Grid.Column="2" Content="删除" Name="delete" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
--------------------编程问答-------------------- 额,自己2B~~~发现了~~~ --------------------编程问答-------------------- 拿到值和绑定到ui上是两个步骤。
你可能拿到值的时候listbox已经加载完毕了,所以你可能需要通过 one way的绑定方式去更新ui
首先你需要在code-behind实现 INotifyPropertyChanged接口
其次,在获取到值的时候更新ui like this
Deployment.Current.Dispatcher.BeginInvoke(
() =>
{
this.RaisePropertyChanged("LikeNum");
this.RaisePropertyChanged("Title");
}); --------------------编程问答-------------------- 谢谢你的回答,用了这种方法还是有显示不出来,请问你觉得还有可能是哪里有问题吗? --------------------编程问答-------------------- 你看一下这个
关于如何实现InotifyPropertyChanged接口
http://technet.microsoft.com/zh-cn/magazine/ms229614(VS.80).aspx --------------------编程问答-------------------- 方法还是会的,就是不知道为什么不管用什么方法,ListBox上面就是不显示对应绑定的数据,很纠结 --------------------编程问答-------------------- --------------------编程问答-------------------- 没看到您BINDING的重载方法阿?
补充:移动开发 , Windows Phone