/// <summary>
        /// Create a prototype instance
        /// </summary>
        protected void LoadPrototype()
        {
            var entry = CollectionRoot.Prototypes.First(p => p.Value.Current == (CurrentType ?? PossibleTypes[0]));

            _prototype = Convert(entry.Instantiate());
            RaisePropertyChanged(nameof(Prototype));
        }
 private void Add(string key, ModelAndEntry newItem)
 {
     _internalCollection.Add(key, newItem);
     RaiseCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, newItem.Instance));
 }
 /// <summary>
 /// Write instance values to model
 /// </summary>
 private static Entry WriteToEntry(ModelAndEntry item)
 {
     Converter.ToModel(item.Instance, item.Model);
     return(item.Model);
 }