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); }
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; }
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); } }); }