【发布时间】:2017-05-31 20:19:43
【问题描述】:
我正在使用 SQLite 开发 UWP 应用程序,我遇到了一个问题,我需要一些帮助 - 因为现在我刚刚找到了一个糟糕的解决方案。
我有一组电影,它们以string FavMoviesIdString 的形式保存在我的数据库中(每个最喜欢的电影ID 都被添加到字符串中并由";" 分割 - 因为您无法保存整个 MoviesModels 列表)
用户可以通过不同站点(站点 B)上的 FavMoviesCollection 来查看这些电影。
方法LoadMovies 获取这些电影并将它们显示在FilteredMoviesList 中。 (它绑定到 ListView Mode=OneWay)
如果用户第一次打开站点 B,则在构造函数中调用 LoadMovies 方法并显示所有电影,但是,用户可以从站点 A 将电影添加到他们的收藏夹在访问站点 B 之后。问题:在站点 A 上添加电影后,列表不会更新。
打开应用程序 -> 转到站点 A 并将电影添加到收藏夹 -> 转到站点 B - 显示电影 -> 返回站点 A 并添加另一部电影 -> 返回站点 B 并且只有第一个显示电影。
“我该怎么做,如果添加了另一个项目,列表会更新” 或 “我该怎么做才能重新初始化我的构造函数?” 或 “我应该实现一个更新按钮来手动加载电影吗?”
public ObservableCollection <MovieModels> FilteredMoviesList
{
get { return _filteredMoviesList;}
set
{
_filteredMoviesList = value;
RaisePropertyChanged("FilteredMoviesList")
}
}
public void LoadMovies()
{
using(var db = new DataBaseContext())
{
ObservableCollection<MovieModel> movies = new ObservableCollection<MovieModel>();
movies = DatabaseModel.GetSampleFavMovies();
FilteredMoviesList = movies;
}
}
编辑:现在有效的方法:
在导航到另一个页面时,我调用 LoadMovies 方法 - 所以只有在离开站点后更新列表,这很糟糕。
【问题讨论】: