/// <summary>
        /// Child classes can override this method to perform
        ///  clean-up logic, such as removing event handlers.
        /// </summary>
        protected override void OnDispose()
        {
            if (_environmentModel != null)
            {
                _environmentModel.IsConnectedChanged -= EnvironmentModelOnIsConnectedChanged();

                if (_environmentModel.Connection != null)
                {
                    // ReSharper disable DelegateSubtraction
                    _environmentModel.Connection.ReceivedResourceAffectedMessage -= OnReceivedResourceAffectedMessage;
                }
            }

            if (DebugOutputViewModel != null)
            {
                DebugOutputViewModel.Dispose();
            }
            var model = DataListViewModel as SimpleBaseViewModel;

            if (model != null)
            {
                DataListViewModel.Parent = null;
                model.Dispose();
                DataListViewModel.Dispose();
            }

            base.OnDispose();
        }
Пример #2
0
        /// <summary>
        /// Child classes can override this method to perform
        ///  clean-up logic, such as removing event handlers.
        /// </summary>
        protected override void OnDispose()
        {
            if (_server != null)
            {
                _server.IsConnectedChanged -= EnvironmentModelOnIsConnectedChanged();

                if (_server.Connection != null)
                {
                    // ReSharper disable DelegateSubtraction
                    _server.Connection.ReceivedResourceAffectedMessage -= OnReceivedResourceAffectedMessage;
                }
            }

            DebugOutputViewModel?.Dispose();
            var model = DataListViewModel as SimpleBaseViewModel;

            if (model != null)
            {
                DataListViewModel.Parent = null;
                model.Dispose();
                DataListViewModel.Dispose();
            }
            var ws = (WorkSurfaceViewModel as IDisposable);

            ws?.Dispose();
            base.OnDispose();
        }