private async void Model_PropertyChanged(object sender, PropertyChangedEventArgs e) { SplitScreenModel vm = sender as SplitScreenModel; switch (e.PropertyName) { case nameof(vm.SplitScreenData): reposVideoItem(); await reloadUI(); break; case nameof(vm.IsOnEditting): if (vm.IsOnEditting) { reposVideoItem(); } setPanelEditStatus(!vm.IsOnEditting); break; case nameof(vm.OnSwitching): case nameof(vm.SwitchPaused): reposVideoItem(); break; } }
private void controlModelEvent(SplitScreenModel model, bool isInstall) { if (model != null) { if (isInstall) { model.PropertyChanged += SplitModel_PropertyChanged; } else { model.PropertyChanged -= SplitModel_PropertyChanged; } } }
private async void SplitScreenPanel_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e) { SplitScreenModel oldModel = e.OldValue as SplitScreenModel; if (oldModel != null) { oldModel.PropertyChanged -= Model_PropertyChanged; oldModel.DataPrepare -= Model_DataPrepare; } SplitScreenModel newModel = e.NewValue as SplitScreenModel; if (newModel != null) { newModel.PropertyChanged += Model_PropertyChanged; newModel.DataPrepare += Model_DataPrepare; } await reloadUI(); }