大家好,我正在使用 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 的本地数据库中,但它不会立即显示在我的数据透视表中。请给我建议什么以及如何做?我错了。需要帮忙。