windows-phone-8-通过xaml UI更新数据后如何刷新数据透视表中的数据?

您好,我正在Windows Phone 8应用程序上工作,我遇到了一个问题,正在将一些数据加载到我的数据透视项目中,如果用户点击了一个用户控件,则会打开该控件,并且我会通过用户控件修改数据.数据已成功保存到数据库中,但我的数据透视表项未立即更新.我正在使用以下可观察的集合.

我像在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; }
}

现在,如下所示,我将数据加载到数据透视页中的数据透视表项中

private void LoadWordbank()
{
        List<MysecondWrapper> dbData = helper.FetchAllName(thisApp.CurrentName.Id);
    if (dbData.Count != 0)
    {
        foreach (MySerconWrapper item in dbData)
        {
            saveinfo.Add(new MyWrapper { NameLocalId = item.Id.ToString(), Name= item.Name, NameDescription = item.Description, NameId = thisApp.CurrentName.Id});
        }
    }
}

mypivot.xaml如下.我不是在编写完整的代码,而是我如何分配要显示的属性.

 <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}"

但是它没有用,所以我已经删除了.在btnNameDescription_Click上,我的用户控件打开,我可以将数据保存在wp8的本地数据库中,但不会立即显示在我的数据透视图中.请给我建议,怎么办?我错了.需要帮忙.

最佳答案
我已经做好了,首先不需要刷新页面,可观察的集合可以自动做到.我的observableCollection是saveInfoCollection.

可观察的集合有三种可能性

1)从可观察的集合中删除一个项目.

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

3)在可观察的集合中添加一个项目.

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

//savedData is my observableCollection name.
savedData.Remove(selected);

2)在第二种情况下,当我将修改可观察集合中的项目时,在这里您将看到可观察集合的魔力,我借助Tag属性获取了该项目对象,因此我将其数据库更新为我的可观察对象集合将自动更新.

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

如果您使用的是observableCollection,则无需刷新页面.这是ViewModel的魔力.

转载注明原文:windows-phone-8-通过xaml UI更新数据后如何刷新数据透视表中的数据? - 代码日志