启用NavigationCache时更新DataContext(WP8.1)

时间:2015-05-23 14:23:43

标签: c# xaml binding windows-phone-8.1 windows-8.1

在我的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>

0 个答案:

没有答案