저는 간단한 C# WPF 비디오 플레이어 앱을 만들고 있습니다.다른 창에서 MediaEnded 이벤트 수신
2 개의 Windows가 있습니다. MainWindow (부모 창)에는 비디오를 표시 할 MediaElement가 있습니다. PlaylistWindow (하위 창)는 appRoot 경로에있는 모든 .avi 파일을 표시하는 ListBox가 포함 된 창입니다.
현재 ListBox 항목을 두 번 클릭하면 MainWindow에서 해당 비디오가 재생됩니다. 자동 재생 기능을 사용하여 현재 비디오가 끝날 때 목록의 다음 항목이 자동으로 재생되도록하고 싶습니다.
PlaylistWindow에서 ListBox에 대해 몇 가지 작업을 수행 할 수 있도록 PlaylistWindow가 MainWindow의 MediaElement에 의해 트리거 된 MediaEnded 이벤트를 수신 대기하고 싶습니다.
PlaylistWindow에서 MediaEnded 이벤트를 구독하려면 어떻게해야합니까?
편집 추가 : 다음과 같이 다른 접근 방식을 사용했습니다. 이것이 최선의 방법이라고 생각하지 않지만 저에게는 효과적입니다.
public partial class MainWindow : Window
{
PlaylistWindow PLWindow = new PlaylistWindow();
public MainWindow()
{
InitializeComponent();
}
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
PLWindow.Owner = this;
PLWindow.Show();
}
private void videoWindow_Ended(object sender, EventArgs e)
{
PLWindow.playNext();
}
}
public partial class PlaylistWindow : Window
{
public void playNext()
{
if (playListBox.SelectedIndex < playListBox.Items.Count - 1)
{
playListBox.SelectedIndex = playListBox.SelectedIndex + 1;
}
else { playListBox.SelectedIndex = 0; }
(Owner as MainWindow).playVideo(playListBox.SelectedValue.ToString());
}
}
나는 여전히 코드 샘플을 게시 할 수있는 경우 PlaylistWindow에서 MediaEnded 이벤트를 수신하는 방법에 대해 학습에 열려있어.