コード例 #1
0
        private void OnCommandNotification(KeyValuePair <string, object> notification)
        {
            switch (notification.Key)
            {
            case "Created":
                Counters = Counters.IncrementCreatedCommands();
                break;

            case "Disposed":
                Counters = Counters.IncrementDisposedCommands();
                break;

            case "Destroyed":
                Counters = Counters.IncrementDestroyedCommands();
                break;
            }

            CountersChanged?.Invoke(this, EventArgs.Empty);
        }
コード例 #2
0
        public CountersData(CountersData source)
        {
            if (source is null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            CreatedViewModels   = source.CreatedViewModels;
            DisposedViewModels  = source.DisposedViewModels;
            DestroyedViewModels = source.DestroyedViewModels;

            CreatedProperties   = source.CreatedProperties;
            DisposedProperties  = source.DisposedProperties;
            DestroyedProperties = source.DestroyedProperties;

            CreatedCommands   = source.CreatedCommands;
            DisposedCommands  = source.DisposedCommands;
            DestroyedCommands = source.DestroyedCommands;
        }
コード例 #3
0
        public void Start()
        {
            Counters = new CountersData();

            DiagnosticListener.AllListeners.Subscribe(delegate(DiagnosticListener listener)
            {
                if (listener.Name.StartsWith("Chinook.DynamicMvvm.IViewModel", StringComparison.InvariantCulture))
                {
                    listener.Subscribe(OnViewModelNotification);
                }
                else if (listener.Name.StartsWith("Chinook.DynamicMvvm.IDynamicProperty", StringComparison.InvariantCulture))
                {
                    listener.Subscribe(OnPropertyNotification);
                }
                else if (listener.Name.StartsWith("Chinook.DynamicMvvm.IDynamicCommand", StringComparison.InvariantCulture))
                {
                    listener.Subscribe(OnCommandNotification);
                }
            });
        }