XAML - 在OnNavigatedTo中进行的控制/视图模型更改将被忽略

时间:2017-09-01 11:23:36

标签: c# xaml uwp

我正在UWP中开发一个客户端 - 服务器应用程序,其作用类似于网络对讲,基于Raspberry Pi(Windows IoT)。用户单击按钮连接到RPi,客户端获取通知并显示通知页面。如果用户应答呼叫,则导航到具有媒体元素的另一个页面,该源是由服务器创建的网络媒体接收器。这是传入呼叫页面代码,负责导航:

 private void answerCall_Click(object sender, RoutedEventArgs e)
 {
     speaker.Stop();
     speaker.Dispose();
     Frame.Navigate(typeof(MainPage), true);
 }

这是代码在页面上的代码,其中media元素负责处理OnNavigatedTo事件(ViewModel类在页面的静态资源中声明):

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    bool properValue = bool.TryParse(e.Parameter.ToString(), out bool isCalling);
    if (!properValue)
         return;

    if (isCalling)
    {
         MainPageViewModel viewModel = (MainPageViewModel)Resources["mainPageViewModel"];
         viewModel.VideoURL = new Uri(@"stsp://" + SettingsManager.Instance.Values["ServerIP"].ToString());
         viewModel.OnPropertyChanged("VideoURL");   
     }
}

问题是设置VideoURL并触发OnPropertyChanged的部分不起作用。媒体元素源仍为空,并且不显示任何内容。

我的问题是:有没有办法在OnNavigatedTo事件处理程序中提交页面的ViewModel属性中的更改?

0 个答案:

没有答案