/// <inheritdoc/>
        protected override void ExecuteSync(INodePresenter nodePresenter, object parameter, object preExecuteResult)
        {
            var currentValue   = nodePresenter.Value;
            var collectionNode = ((ItemNodePresenter)nodePresenter).OwnerCollection;

            collectionNode.RemoveItem(nodePresenter.Value, nodePresenter.Index);
            var newName = AddPrimitiveKeyCommand.GenerateStringKey(collectionNode.Value, collectionNode.Descriptor, (string)parameter);

            collectionNode.AddItem(currentValue, newName);
        }
Ejemplo n.º 2
0
        /// <inheritdoc/>
        protected override void ExecuteSync(INodePresenter nodePresenter, object parameter, object preExecuteResult)
        {
            var currentValue   = nodePresenter.Value;
            var collectionNode = ((ItemNodePresenter)nodePresenter).OwnerCollection;

            DictionaryDescriptor DictionaryDescriptor = collectionNode.Descriptor as DictionaryDescriptor;
            Type      keyType = DictionaryDescriptor.KeyType;
            NodeIndex?newName = null;

            if (TypeDescriptor.GetConverter(keyType).CanConvertFrom(typeof(string)))
            {
                newName = AddPrimitiveKeyCommand.GenerateGenericKey(collectionNode.Value, collectionNode.Descriptor, parameter);
            }

            if (newName != null)
            {
                collectionNode.RemoveItem(nodePresenter.Value, nodePresenter.Index);

                collectionNode.AddItem(currentValue, newName.Value);
            }
        }