void ManageMusicWindow_Loaded(object sender, RoutedEventArgs e) { ManageMusicWindowViewModel vm = DataContext as ManageMusicWindowViewModel; if (vm != null) { Dispatcher.BeginInvoke((Action)(() => { vm.LoadMusicsFromServer(); })); } }
public ManageMusicWindow(ManageMusicWindowViewModel vm) : base(vm) { MinHeight = ActualHeight;//overide the MiniHeight set by window base MinimizeButtonState = YoYoStudio.Controls.CustomWindow.WindowButtonState.Disabled; MaximizeButtonState = YoYoStudio.Controls.CustomWindow.WindowButtonState.Disabled; Loaded += ManageMusicWindow_Loaded; DataContext = vm; if (vm != null) { vm.Initialize(); } InitializeComponent(); }
protected override void ProcessMessage(Common.Notification.EnumNotificationMessage <object, RoomWindowAction> message) { RoomWindowViewModel roomVM = DataContext as RoomWindowViewModel; switch (message.Action) { case RoomWindowAction.ShowConfigWindow: ConfigurationItemViewModel configItem = message.Content as ConfigurationItemViewModel; roomVM.ApplicationVM.ConfigurationWindowVM = new ConfigurationWindowViewModel(configItem); ShowWebWindow(webWindow, false); ConfigurationWindow configurationWindow = new ConfigurationWindow(roomVM.ApplicationVM.ConfigurationWindowVM); configurationWindow.Owner = this; configurationWindow.ShowDialog(); ShowWebWindow(webWindow, true); break; case RoomWindowAction.PlayMusic: bool canPlay = (bool)message.Content; if (canPlay) { if (playMusicWindow == null) { InitMusicWindow(); } ShowWebWindow(webWindow, false); playMusicWindow.WindowState = System.Windows.WindowState.Normal; playMusicWindow.Show(); playMusicWindow.Topmost = true; } else { ShowWebWindow(webWindow, false); if (System.Windows.MessageBox.Show("其它人正在播放音乐,请稍后再试", "提示", MessageBoxButton.OK) == MessageBoxResult.OK) { ShowWebWindow(webWindow, true); } } break; case RoomWindowAction.ManageMusic: ShowWebWindow(webWindow, false); ManageMusicWindowViewModel manageMusicVM = new ManageMusicWindowViewModel(); ManageMusicWindow manageWnd = new ManageMusicWindow(manageMusicVM); manageWnd.Owner = this; manageWnd.Topmost = true; ShowWebWindow(webWindow, false); manageWnd.ShowDialog(); ShowWebWindow(webWindow, true); break; case RoomWindowAction.RecordAudio: SaveFileDialog dialog = new SaveFileDialog(); dialog.Filter = "音频文件 (*.wav)|*.wav"; if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { RoomWindowViewModel vm = DataContext as RoomWindowViewModel; vm.StartAudioRecording(dialog.FileName); } break; default: break; } }
protected override void ProcessMessage(Common.Notification.EnumNotificationMessage <object, ManageMusicWindowAction> message) { switch (message.Action) { case ManageMusicWindowAction.UploadMusic: OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "MP3文件 (*.mp3)|*.mp3|FLV 文件 (*.flv)|*.flv"; dlg.Multiselect = false; if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) { if (!String.IsNullOrEmpty(dlg.FileName)) { try { string path = ConvertToFLV(dlg.FileName); if (!System.IO.File.Exists(path)) { System.Windows.MessageBox.Show(this, "请确认歌曲名字和其所在的路径没有空格", Messages.UploadError); return; } ManageMusicWindowViewModel viewModel = DataContext as ManageMusicWindowViewModel; bool result = viewModel.UploadMusic(path); if (result == true) { System.Windows.MessageBox.Show(this, Messages.UploadSucceed); } else { System.Windows.MessageBox.Show(this, Messages.UploadError); } } catch (Exception e) { System.Windows.MessageBox.Show(this, e.Message); } } else { System.Windows.MessageBox.Show(this, "请先选择歌曲。"); } } break; case ManageMusicWindowAction.DeleteMusic: if (System.Windows.MessageBox.Show("确定要删除选择的歌曲吗?", Text.Warning, MessageBoxButton.OKCancel) == MessageBoxResult.OK) { ManageMusicWindowViewModel mvm = DataContext as ManageMusicWindowViewModel; mvm.DeleteMusic(); } break; case ManageMusicWindowAction.LoadMusicComplete: ManageMusicWindowViewModel vm = DataContext as ManageMusicWindowViewModel; PART_Loading.Visibility = System.Windows.Visibility.Collapsed; PART_Content.Visibility = System.Windows.Visibility.Visible; MusicDataGrid.ItemsSource = vm.Musics; break; default: break; } }