/// <summary>
        /// Creates and returns a controller for the defined dictionary and supplied instance controller.
        /// </summary>
        public DictionaryController <TModelClass, TKey, TValue> CreateController(MEntityInstanceController InstanceController)
        {
            var Result = new DictionaryController <TModelClass, TKey, TValue>(InstanceController);

            Result.DictionaryDefinitor = this;

            Result.IsEditableNow = this.IsEditControlled;
            Result.IsValid       = true;

            if (this.ItemsSourceGetter != null)
            {
                Result.CanCollectionBeEmpty                 = this.CanCollectionBeEmpty;
                Result.EmptyCollectionTitle                 = this.EmptyCollectionTitle;
                Result.ExternalItemsSourceGetter            = this.ItemsSourceGetter; // This could be later changed for a per-instance source.
                Result.ExternalItemsSourceSelectedValuePath = this.ItemsSourceSelectedValuePath;
            }

            return(Result);
        }