【发布时间】:2011-03-17 20:18:44
【问题描述】:
我有一个返回对象列表的 WCF 调用。
我创建了一个 WP7 Silverlight Pivot 应用程序并修改了 MainViewModel 以从我的 WCF 服务加载数据,LoadData 方法现在看起来像这样
public ObservableCollection<Standing> Items { get; private set; }
public void LoadData()
{
var c = new WS.WSClient();
c.GetStandingsCompleted += GetStandingsCompleted;
c.GetStandingsAsync();
}
void GetStandingsCompleted(object sender, GetStandingsCompletedEventArgs e)
{
Items = e.Result;
this.IsDataLoaded = true;
}
这会运行,如果我在已完成的事件上设置一个断点,我可以看到它成功运行,我的 Items 集合现在有 50 个奇怪的项目。但是 UI 中的列表框不显示这些。
如果我将以下行添加到我的 LoadData 方法的底部,那么我会在 UI 的 listbx 中看到 1 个项目
Items.Add(new Standing(){Team="Test"});
这证明绑定是正确的,但似乎由于异步 WCF 调用的延迟,UI 没有更新。
作为参考,我更新了 MainPage.xaml 列表框以绑定到我的 Standing 对象上的 Team 属性
<ListBox x:Name="FirstListBox" Margin="0,0,-12,0" ItemsSource="{Binding Items}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Margin="0,0,0,17" Width="432">
<TextBlock Text="{Binding Team}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
<TextBlock Text="{Binding Team}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
关于我做错了什么有什么想法吗?
谢谢
【问题讨论】:
标签: wcf data-binding windows-phone-7