如何在父SplitView中访问MediaPlayerElement?

时间:2017-11-07 22:53:40

标签: mvvm uwp uwp-xaml

我正在UWP平台上为Windows 10创建一个广播应用程序。我有一个SplitView,右侧(SplitView内容)有一个底部边距。在窗口底部,我在窗口底部有一个MediaPlayer(带有TransportControls)。

要播放的电台列表位于一个框架中,该框架会加载某个页面。

我的问题是,当我点击我要播放的电台时,如何设置此控件的源,该控件存在于父窗口中?我试图在后面的代码中创建一个MediaPlayer对象然后绑定到那个但我无法将物理XAML UI控件绑定到MediaPlayer对象。即便如此,我也无法从应用程序的其他页面访问此对象。

我有点失落。任何帮助都会很棒:D

1 个答案:

答案 0 :(得分:1)

您使用MvvMLight库吗? 因为您的案例中的解决方案可以是消息传递逻辑。 如下代码:

您使用Radio属性(您的业务类)创建一个消息类:

public class PlayRadioMessage
{
    public PlayRadioMessage(Radio radio)
    {
        this.Radio = radio;
    }

    public Radio Radio { get; set; }
}

在您对无线电项目的命令中(点击收音机时)

Messenger.Default.Send(new PlayRadioMessage(radio))

在您的父级(SplitView内容或MediaPlayer父级)中,您会收到以下消息:

Messenger.Default.Register<PlayRadioMessage>(this, this.OnPlayRadio);
private void OnPlayRadio(PlayRadioMessage) {
// Set the source of your mediaPlayer with the radio property of your Message
}

不要忘记在卸载视图时取消注册消息(如果在视图中使用消息传递):

Messenger.Default.Unregister(this);

对不起我的英文,我是法国人:)¯\ _(ツ)_ /¯