我正在UWP平台上为Windows 10创建一个广播应用程序。我有一个SplitView,右侧(SplitView内容)有一个底部边距。在窗口底部,我在窗口底部有一个MediaPlayer(带有TransportControls)。
要播放的电台列表位于一个框架中,该框架会加载某个页面。
我的问题是,当我点击我要播放的电台时,如何设置此控件的源,该控件存在于父窗口中?我试图在后面的代码中创建一个MediaPlayer对象然后绑定到那个但我无法将物理XAML UI控件绑定到MediaPlayer对象。即便如此,我也无法从应用程序的其他页面访问此对象。
我有点失落。任何帮助都会很棒:D
答案 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);
对不起我的英文,我是法国人:)¯\ _(ツ)_ /¯