C# ObservableCollection不刷新

C# ObservableCollection不刷新,c#,windows-phone-8,windows-phone,observablecollection,C#,Windows Phone 8,Windows Phone,Observablecollection,我正在Visual Studio 2013中使用Windows Phone数据绑定应用程序创建应用程序。 我使用的是如下所示的ObservableCollection: public ObservableCollection<ItemViewModel> Items { get; private set; } 那么如何更新ObservableCollection呢?好的,数据不更新的原因是您将ObservableCollection设置为一个新实例。将LoadData函数更新为:

我正在Visual Studio 2013中使用Windows Phone数据绑定应用程序创建应用程序。 我使用的是如下所示的ObservableCollection:

public ObservableCollection<ItemViewModel> Items { get; private set; }

那么如何更新ObservableCollection呢?

好的,数据不更新的原因是您将ObservableCollection设置为一个新实例。将LoadData函数更新为:

    public void LoadData()
    {
        if( IsDataLoaded )
            this.Items.Clear();

        WebClient webClient = new WebClient();
        webClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(webClient_DownloadStringCompleted);
        webClient.DownloadStringAsync(new System.Uri("http://questoons.com/"));                     
    }

如果更新集合的实例,则必须向UI发出通知。

好的,数据不更新的原因是您将可观察集合设置为新实例。将LoadData函数更新为:

    public void LoadData()
    {
        if( IsDataLoaded )
            this.Items.Clear();

        WebClient webClient = new WebClient();
        webClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(webClient_DownloadStringCompleted);
        webClient.DownloadStringAsync(new System.Uri("http://questoons.com/"));                     
    }

如果更新集合的实例,则必须向UI发出通知。

好的,数据不更新的原因是您将可观察集合设置为新实例。将LoadData函数更新为:

    public void LoadData()
    {
        if( IsDataLoaded )
            this.Items.Clear();

        WebClient webClient = new WebClient();
        webClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(webClient_DownloadStringCompleted);
        webClient.DownloadStringAsync(new System.Uri("http://questoons.com/"));                     
    }

如果更新集合的实例,则必须向UI发出通知。

好的,数据不更新的原因是您将可观察集合设置为新实例。将LoadData函数更新为:

    public void LoadData()
    {
        if( IsDataLoaded )
            this.Items.Clear();

        WebClient webClient = new WebClient();
        webClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(webClient_DownloadStringCompleted);
        webClient.DownloadStringAsync(new System.Uri("http://questoons.com/"));                     
    }
如果您更新了收藏实例,则必须向用户界面发送通知。

  • 您需要将对象反序列化到ItemViewModel
  • 循环通过对象
  • 将其添加到项目中。例如:添加项目(obj)
  • 您需要基于web服务响应创建ItemViewModel,您可以尝试这样做,这将为您提供C#对象
像这样:

else
{

    int i = 0;

    var dynJson = JsonConvert.DeserializeObject<ItemViewModel>(e.Result);
    foreach (var item in dynJson)
    {
        String bodyText = "";
        bodyText += "Description:\n";
        bodyText += (String)item.description;

        this.Items.Add(item);


        i++;
    }
    this.IsDataLoaded = true;
}
else
{
int i=0;
var dynJson=JsonConvert.DeserializeObject(e.Result);
foreach(dynJson中的var项目)
{
字符串bodyText=“”;
bodyText+=“说明:\n”;
bodyText+=(字符串)item.description;
此.Items.Add(item);
i++;
}
this.IsDataLoaded=true;
}
  • 您需要将对象反序列化到ItemViewModel
  • 循环通过对象
  • 将其添加到项目中。例如:添加项目(obj)
  • 您需要基于web服务响应创建ItemViewModel,您可以尝试这样做,这将为您提供C#对象
像这样:

else
{

    int i = 0;

    var dynJson = JsonConvert.DeserializeObject<ItemViewModel>(e.Result);
    foreach (var item in dynJson)
    {
        String bodyText = "";
        bodyText += "Description:\n";
        bodyText += (String)item.description;

        this.Items.Add(item);


        i++;
    }
    this.IsDataLoaded = true;
}
else
{
int i=0;
var dynJson=JsonConvert.DeserializeObject(e.Result);
foreach(dynJson中的var项目)
{
字符串bodyText=“”;
bodyText+=“说明:\n”;
bodyText+=(字符串)item.description;
此.Items.Add(item);
i++;
}
this.IsDataLoaded=true;
}
  • 您需要将对象反序列化到ItemViewModel
  • 循环通过对象
  • 将其添加到项目中。例如:添加项目(obj)
  • 您需要基于web服务响应创建ItemViewModel,您可以尝试这样做,这将为您提供C#对象
像这样:

else
{

    int i = 0;

    var dynJson = JsonConvert.DeserializeObject<ItemViewModel>(e.Result);
    foreach (var item in dynJson)
    {
        String bodyText = "";
        bodyText += "Description:\n";
        bodyText += (String)item.description;

        this.Items.Add(item);


        i++;
    }
    this.IsDataLoaded = true;
}
else
{
int i=0;
var dynJson=JsonConvert.DeserializeObject(e.Result);
foreach(dynJson中的var项目)
{
字符串bodyText=“”;
bodyText+=“说明:\n”;
bodyText+=(字符串)item.description;
此.Items.Add(item);
i++;
}
this.IsDataLoaded=true;
}
  • 您需要将对象反序列化到ItemViewModel
  • 循环通过对象
  • 将其添加到项目中。例如:添加项目(obj)
  • 您需要基于web服务响应创建ItemViewModel,您可以尝试这样做,这将为您提供C#对象
像这样:

else
{

    int i = 0;

    var dynJson = JsonConvert.DeserializeObject<ItemViewModel>(e.Result);
    foreach (var item in dynJson)
    {
        String bodyText = "";
        bodyText += "Description:\n";
        bodyText += (String)item.description;

        this.Items.Add(item);


        i++;
    }
    this.IsDataLoaded = true;
}
else
{
int i=0;
var dynJson=JsonConvert.DeserializeObject(e.Result);
foreach(dynJson中的var项目)
{
字符串bodyText=“”;
bodyText+=“说明:\n”;
bodyText+=(字符串)item.description;
此.Items.Add(item);
i++;
}
this.IsDataLoaded=true;
}

能否显示向集合中添加新项目的代码,即更新可观察集合。@谢谢回复。我编辑了我的问题并添加了代码。请看一看。谢谢你的额外代码。请告诉我刷新代码的起始位置,即重置ObservableCollection的位置。@Mark我在问题中添加了LoadData()函数定义。请看一下。我正在检查isDataLoaded bool变量,如果它为真,则为this.Items=new observetecollection();能否显示向集合中添加新项的代码,即更新可观察集合。@谢谢回复。我编辑了我的问题并添加了代码。请看一看。谢谢你的额外代码。请告诉我刷新代码的起始位置,即重置ObservableCollection的位置。@Mark我在问题中添加了LoadData()函数定义。请看一下。我正在检查isDataLoaded bool变量,如果它为真,则为this.Items=new observetecollection();能否显示向集合中添加新项的代码,即更新可观察集合。@谢谢回复。我编辑了我的问题并添加了代码。请看一看。谢谢你的额外代码。请告诉我刷新代码的起始位置,即重置ObservableCollection的位置。@Mark我在问题中添加了LoadData()函数定义。请看一下。我正在检查isDataLoaded bool变量,如果它为真,则为this.Items=new observetecollection();能否显示向集合中添加新项的代码,即更新可观察集合。@谢谢回复。我编辑了我的问题并添加了代码。请看一看。谢谢你的额外代码。请告诉我刷新代码的起始位置,即重置ObservableCollection的位置。@Mark我在问题中添加了LoadData()函数定义。请看一下。我正在检查isDataLoaded bool变量,如果它为真,则为this.Items=new observetecollection();非常感谢您的回复@Mark。我发现了另一个问题。实际上,我正在从URL获取json提要。现在我调试并发现,当我点击刷新按钮时,它并没有获取更新的提要。它总是响应f