Catel.MVVM.ManagedViewModel.RemoveViewModelInstance C# (CSharp) Метод

RemoveViewModelInstance() публичный Метод

Removes a view model instance from the list of instances.
The is null.
public RemoveViewModelInstance ( IViewModel viewModel ) : void
viewModel IViewModel The view model instance to remove.
Результат void
        public void RemoveViewModelInstance(IViewModel viewModel)
        {
            Argument.IsNotNull("viewModel", viewModel);

            lock (_lock)
            {
                viewModel.PropertyChanged -= OnViewModelPropertyChanged;

                var viewModelBase = viewModel as ViewModelBase;
                if (viewModelBase != null)
                {
                    viewModelBase.CommandExecutedAsync -= OnViewModelCommandExecutedAsync;
                }

                viewModel.SavingAsync -= OnViewModelSavingAsync;
                viewModel.SavedAsync -= OnViewModelSavedAsync;
                viewModel.CancelingAsync -= OnViewModelCancelingAsync;
                viewModel.CanceledAsync -= OnViewModelCanceledAsync;
                viewModel.ClosedAsync -= OnViewModelClosedAsync;

                var vmId = viewModel.UniqueIdentifier;
                if (_viewModelInstances.ContainsKey(vmId))
                {
                    _viewModelInstances.Remove(vmId);

                    Log.Debug("Removed view model instance, currently containing '{0}' instances of type '{1}'", _viewModelInstances.Count, ViewModelType);
                }
            }
        }

Usage Example

Пример #1
0
        public void RemoveViewModelInstance_NotRegisteredViewModel()
        {
            ViewModelManager.ClearAll();

            var viewModel = new ManagedViewModel(typeof (InterestingViewModel));
            viewModel.RemoveViewModelInstance(new InterestingViewModel());
        }
All Usage Examples Of Catel.MVVM.ManagedViewModel::RemoveViewModelInstance