我有一段代码,从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
中的一列。这很好用,我可以看到所有三个项目连接在一起并显示出来。我想将其分开并使其更加美观,因此我创建了一些
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>
当我运行以上代码时,根本没有显示任何结果。我感觉这应该是个很简单的问题吧?
谢谢。
UserLeaderboards
类的属性:id
、username
、score
。 - Zebi