4 using System.Collections.Generic;
6 using SiliconStudio.Core.Extensions;
8 namespace SiliconStudio.Presentation.Quantum
15 private readonly List<Action<IObservableNode, IDictionary<string, object>>> associatedDataProviders =
new List<Action<IObservableNode, IDictionary<string, object>>>();
31 if (viewModelProvider == null)
throw new ArgumentNullException(
"viewModelProvider");
32 ViewModelProvider = viewModelProvider;
39 public Func<ObservableViewModelIdentifier, ObservableViewModel> ViewModelProvider {
get; set; }
47 associatedDataProviders.Add(provider);
56 associatedDataProviders.Remove(provider);
61 var mergedResult =
new Dictionary<string, object>();
62 foreach (var provider
in associatedDataProviders)
64 var data =
new Dictionary<string, object>();
68 data.ForEach(x => mergedResult.Add(x.Key, x.Value));
70 data.ForEach(x => mergedResult[x.Key] = x.Value);
void UnregisterAssociatedDataProvider(Action< IObservableNode, IDictionary< string, object >> provider)
Unregister a previoulsy registered method that was associating additional data to an instance of IObs...
ObservableViewModelService(Func< ObservableViewModelIdentifier, ObservableViewModel > viewModelProvider)
Initializes a new instance of the ObservableViewModelService class.
void RegisterAssociatedDataProvider(Action< IObservableNode, IDictionary< string, object >> provider)
Register a method that will associate additional data to an instance of IObservableNode.
A class that provides various services to ObservableViewModel objects
ObservableViewModelService()
Initializes a new instance of the ObservableViewModelService class.