Windows phone 8 如何在通过xaml UI更新数据后刷新透视项中的数据?

Windows phone 8 如何在通过xaml UI更新数据后刷新透视项中的数据?,windows-phone-8,refresh,pivotitem,Windows Phone 8,Refresh,Pivotitem,大家好,我正在windows phone 8应用程序上工作,我面临一个问题,我正在我的pivot项目中加载一些数据,如果用户点击一个用户控件打开,我将通过用户控件修改数据。数据已成功保存到数据库中,但我的数据透视项未立即更新。我使用可观察的集合如下 我在mypivot.xaml.cs文件中使用的ObservableCollection如下所示 ObservableCollection<MyWrapper> saveinfo = new ObservableCollection<

大家好,我正在windows phone 8应用程序上工作,我面临一个问题,我正在我的pivot项目中加载一些数据,如果用户点击一个用户控件打开,我将通过用户控件修改数据。数据已成功保存到数据库中,但我的数据透视项未立即更新。我使用可观察的集合如下

我在mypivot.xaml.cs文件中使用的ObservableCollection如下所示

ObservableCollection<MyWrapper> saveinfo = new ObservableCollection<MyWrapper>();
public ObservableCollection<MyWrapper> savedWordBankCollection
{ get { return saveinfo; } }

//MyWrapper class structure

public class MyWrapper: INotifyPropertyChanged
{
    private string desc;
    public event PropertyChangedEventHandler PropertyChanged;
    private void NotifyChange(PropertyChangedEventArgs e)
    {
        if (PropertyChanged != null)
            PropertyChanged(this, e);
    }
    public string Name { get; set; }
    public string NameDescription
    {
        get { return desc; }
        set
        {
            desc = value;
            NotifyChange(new PropertyChangedEventArgs("NameDescription"));
        }
    }
    public string NameId { get; set; }   
    public string NameLocId { get; set; }
}

但它不起作用,所以我把它移走了。在btnNameDescription_上单击“我的用户控件”将打开,我可以将数据保存在wp8的本地数据库中,但它不会立即显示在我的透视图中。请给我建议做什么和怎么做?我错在哪里。需要帮助。

我已经完成了,首先不需要刷新页面,可观察集合可以自动完成。我的observableCollection是saveInfoCollection

可观测集合有三种可能性

1) 从可观察集合中删除项目

2) 修改可观察集合中的项

3) 在可观察集合中添加项

解释

1) 在第一种情况下,当我将从可观察集合中删除该项时,我将使用可观察集合的remove方法,如下所示

//savedData is my observableCollection name.
savedData.Remove(selected);
2) 在第二种情况下,当我将修改可观察集合中的项时,在这里您将看到可观察集合的魔力,我在标记属性的帮助下获取项对象,因此当我更新数据库时,我的可观察集合将自动更新

3) 在这种情况下,您可以将新的数据对象添加到可观察集合中,它将自动更新可观察集合


如果您使用的是observableCollection,则无需刷新页面。这是ViewModel的神奇之处

为什么ObservableCollection没有NotifyChange?我正在使用NotifyChange进行ObservableCollection。你可以看到。
 <TextBlock x:Name="wordbankStored" Grid.Column="0" Grid.Row="0" Text="{Binding Name}"/>                               
 <Button x:Name="btnWordDescription" Grid.Row="1" Grid.Column="0" Content="{Binding NameDescription}" 
Tag="{Binding}" Click="btnNameDescription_Click"/>
Content="{Binding NameDescription, Mode=TwoWay}"
//savedData is my observableCollection name.
savedData.Remove(selected);