【问题标题】:Windows phone update listviewWindows 手机更新列表视图
【发布时间】:2015-05-12 19:57:14
【问题描述】:

我在 Startpage.xaml 上创建了一个带有列表视图的 Windows phone 8.1 应用程序。当我更新 listview 值时,在我关闭并再次打开应用程序之前,我看不到手机上的更改。单击刷新按钮时,我尝试更新列表视图,但未成功。有谁知道当我点击刷新按钮时如何更新列表视图?

我如何在列表视图中填写数据:

protected async override void OnNavigatedTo(NavigationEventArgs e)
{
    this.navigationHelper.OnNavigatedTo(e);
    HttpClient http = new HttpClient();
    string str = ((ComboBoxItem)cbox.SelectedItem).Content.ToString();
    var response = await http.GetStringAsync("http://mywebpage.si/events/apis/facebook_events.php?city=" + str + "&user=" + uporabnik.user);
    var FSfeed = JsonConvert.DeserializeObject<List<Class1>>(response);

    Reviews.ItemsSource = FSfeed;

}

我的班级:

public class Class1
{
    public string title { get; set; }
    public string description { get; set; }
    public string image { get; set; }
    public string start { get; set; }
    public string end { get; set; }
    public string location { get; set; }
    public string city { get; set; }
    public int id { get; set; }
}

刷新按钮:

    private async void refresh_Click(object sender, RoutedEventArgs e)
    {
    HttpClient http = new HttpClient();
    string str = ((ComboBoxItem)cbox.SelectedItem).Content.ToString();
    var response = await http.GetStringAsync("http://mywebpage.si/events/apis/facebook_events.php?city=" + str + "&user=" + uporabnik.user);
    var FSfeed = JsonConvert.DeserializeObject<List<Class1>>(response);

    Reviews.ItemsSource = FSfeed;
    }

我也尝试过这样刷新,但不成功:

    private async void refresh_Click(object sender, RoutedEventArgs e)
    {
        this.Frame.Navigate(typeof(PivotPage));
    }

【问题讨论】:

  • ListView 是否第一次正确填充项目?也许这是 http.GetStringAsynccached 响应的问题 - 在这种情况下,它将被刷新,但数据相同。
  • 您是否尝试过调试并检查单击刷新时是否收到了不同的数据集?
  • 您是否尝试过将列表视图切换为可观察的集合。模型视图视图模型设计模式可能是一种有用的方法。

标签: c# visual-studio listview windows-phone-8.1


【解决方案1】:

要更新视图,您需要更新与 ItemSource 的绑定:

List<Class1> mySource = new List<Class1>();
Binding binding = new Binding { Source = mySource };
BindingOperations.SetBinding(myListView, Windows.UI.Xaml.Controls.ListView.ItemsSourceProperty, binding);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多