【发布时间】:2016-03-16 10:21:41
【问题描述】:
在反序列化后,我能够成功地将 JSON 中的数据绑定到列表视图,但在绑定到 Hub/HubSection 内的同一列表视图时遇到问题。
使用 ItemData.ItemsSource = obj;我能够将数据绑定到列表视图。当 listview 放置在 hubsection 内时,如何绑定和显示数据?
我的 MainPage.xaml Hub 代码
<Hub x:Name="MainHub" Header="My Hub">
<HubSection x:Name="Test" Header="Online">
<DataTemplate>
<Grid>
<ListView Name="ItemData">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</ListView.ItemContainerStyle>
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<TextBlock Text="{Binding name}" FontSize="24"/>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
</DataTemplate>
</HubSection>
</Hub>
MainPage.xaml.cs
public async void GetOnline()
{
Uri uri = new Uri("http://mywebsite.com");
Dictionary<string, string> pairs = new Dictionary<string, string>();
pairs.Add("id", CourseID.ToString());
HttpClient client = new HttpClient();
HttpFormUrlEncodedContent formContent = new HttpFormUrlEncodedContent(pairs);
HttpResponseMessage response = await client.PostAsync(uri,formContent);
List<string> CName = new List<string>();
if (response.IsSuccessStatusCode)
{
var result = await response.Content.ReadAsStringAsync();
var obj = JsonConvert.DeserializeObject<List<RootObject>>(result);
for (int i = 0; i < obj.LongCount(); i++)
{
CName.Add(obj[i].name);
}
//ItemData.ItemsSource = obj;
//MainHub.DataContext = obj;
}
}
public class RootObject
{
public int id { get; set; }
public string name { get; set; }
}
编辑 1:
我现在可以检索数据了。编辑的 XAML 代码
<Hub x:Name="MainHub" Header="My Hub">
<HubSection x:Name="Test" Header="Online">
<DataTemplate>
<Grid>
<ListView Name="ItemData" ItemsSource="{Binding}"></ListView>
</Grid>
</DataTemplate>
</HubSection>
</Hub>
代码隐藏 -
Test.DataContext = CName;
这是将数据绑定到集线器部分内的列表视图的正确方法吗?
【问题讨论】:
标签: c# json listview windows-phone-8.1