我有一個媒體元素,並且我試圖在按下後退時獲取視頻的位置。我已將位置綁定到ViewModel,當從按鈕按下時可以看到正確的值,但在使用BackRequested時,媒體元素的值爲空。所有其他值完好無損。UWP BackRequested查看模型媒體元素缺失的值
我想要做的是,當用戶點擊返回時,我想存儲視頻的位置,所以當視頻再次播放時,如果用戶希望可以恢復位置。
protected override void OnNavigatedTo(NavigationEventArgs e)
{
this.DataContext = new MediaPlayerVM(new NavigationService(), mainMovie);
// Pass Parameter and Play Movie
Play((TMDB_Movie)e.Parameter);
mainMovie = (TMDB_Movie)e.Parameter;
// Check for Hue Lights
LightsAvailable();
// tie my event with back action
SystemNavigationManager.GetForCurrentView().BackRequested += OnBackRequested;
}
private void OnBackRequested(object sender, BackRequestedEventArgs e)
{
Frame rootFrame = Window.Current.Content as Frame;
if (rootFrame.CanGoBack)
{
e.Handled = true;
MediaPlayerVM viewModel = (MediaPlayerVM)this.DataContext;
// THESE VALUES ARE BLANK BUT NOT BLANK ON BUTTON PRESS
var position = MediaPlayerElement.Position;
var position1 = viewModel.Position;
rootFrame.GoBack();
}
}
任何想法,爲什麼會發生這種情況或可能是另一種方法?我不必在Position的綁定中更新我的數據庫。好像過度殺人
謝謝
我已經創建了一個示例項目並且它不會複製。我認爲目標和最小版本可能是一個問題,但在將其更改爲最新版本後,問題仍在發生。 我在示例項目中也使用了相同的代碼和元素屬性。 我不知道什麼可能導致這個,非常沮喪 –
因此,我發現了這個問題,但它造成了另一個。 在我的App.cs中,我有一個OnBackRequested方法,如果我註釋掉代碼,我可以看到我的媒體播放器頁面中的位置OnBackRequested方法,但是我只想控制一個頁面的OnBackRequested方法並讓App.cs的OnBackRequested方法處理所有其他頁面。 這可能嗎? –