【发布时间】:2011-09-05 16:41:30
【问题描述】:
我有一段代码可以从 HTTP 服务器读取 json 响应,然后对其进行解析并将数据插入到 ListBox 控件中。
下载完成后我触发的事件如下:
void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
DataContractJsonSerializer ser = null;
try
{
ser =
new DataContractJsonSerializer(typeof(ObservableCollection<UserLeaderboards>));
ObservableCollection<UserLeaderboards> users =
ser.ReadObject(e.Result) as ObservableCollection<UserLeaderboards>;
foreach (UserLeaderboards em in users)
{
int Fid = em.id;
string Fusername = em.username;
int Fscore = em.score;
lstbLeaders.Items.Add(Fid + Fusername + Fscore);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
现在,当我执行 items.add 时,我认为它只是将 3 个变量连接起来并将其添加到 ListBox 的一列中。这很好用,我看到所有 3 个项目都已连接并显示。
我想把它分开,让它看起来更好一点,所以我创建了一些XAML 来尝试将变量绑定到文本块。以下只是绑定用户名。我还有一个公共类,可以获取/设置所有 3 个变量。
<ListBox Height="346" HorizontalAlignment="Left" Margin="5,221,0,0"
Name="lstbLeaders" VerticalAlignment="Top" Width="446">
<DataTemplate>
<TextBlock Text="{Binding Source=Fusername}" />
</DataTemplate>
</ListBox>
运行上面的代码时,我什么也没有显示。我觉得这很简单?
谢谢。
【问题讨论】:
标签: c# xaml data-binding windows-phone-7 listbox