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