在我的MainPage上,我有一个带有播放列表对象的ListView。构造函数如下所示:
public mainpage()
{
this.InitializeComponent();
this.DataContext = App.Collection;
// cache page
this.NavigationCacheMode = NavigationCacheMode.Enabled;
}
PlayList对象如下所示:
// playlists
public ObservableCollection<PlayList> Playlists
{
get
{
return playlists;
}
set
{
if (playlists != value)
playlists = value;
NotifyPropertyChanged("Playlists");
}
}
ObservableCollection<PlayList> playlists;
如您所见,我启用了NavigationCacheMode,因为我希望用户在他离开的位置返回List。
在第二页,用户可以添加创建新播放列表并添加音乐。用户完成后,将使用Frame.GoBack()将其返回到MainPage。
当用户重定向回MainPage时,更改不可见。我发现NavigationCacheMode会导致此问题,禁用它会解决问题。
我尝试手动使用NotifyPropertyChanged,我也尝试在MainPage中的OnNavigatedTo()上使用UpdateLayout(),但似乎没有任何工作......
编辑:我的XAML看起来像这样:<ListView Grid.Row="1" ItemsSource="{Binding Playlists}" Margin="0,20,0,0">
<ListView.ItemTemplate>
<DataTemplate>
...
</DataTemplate>
</ListView.ItemTemplate>
</ListView>