Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Core.Presentation / System / Activities / Presentation / TypeCollectionPropertyEditor.cs / 1407647 / TypeCollectionPropertyEditor.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Presentation { using System.Activities.Core.Presentation.Themes; using System.Activities.Presentation.Model; using System.Activities.Presentation.Converters; using System.Activities.Presentation.PropertyEditing; using System.Activities.Presentation.View; using System.Windows; using System.Runtime; using System.Collections.Generic; using System.Reflection; using System.Diagnostics.CodeAnalysis; using System.ComponentModel; using System.Collections; sealed class TypeCollectionPropertyEditor : DialogPropertyValueEditor { public const string AllowDuplicate = "AllowDuplicate"; public TypeCollectionPropertyEditor() { this.InlineEditorTemplate = EditorCategoryTemplateDictionary.Instance.GetCategoryTemplate("TypeCollection_InlineTemplate"); } public override void ShowDialog(PropertyValue propertyValue, IInputElement commandSource) { ModelPropertyEntryToOwnerActivityConverter propertyEntryConverter = new ModelPropertyEntryToOwnerActivityConverter(); ModelItem activityModelItem = (ModelItem)propertyEntryConverter.Convert(propertyValue.ParentProperty, typeof(ModelItem), false, null); ModelItem parentModelItem = (ModelItem)propertyEntryConverter.Convert(propertyValue.ParentProperty, typeof(ModelItem), true, null); EditingContext context = ((IModelTreeItem)activityModelItem).ModelTreeManager.Context; ModelItemCollection inputData = parentModelItem.Properties[propertyValue.ParentProperty.PropertyName].Collection; IEnumerablerawInputData = inputData.GetCurrentValue() as IEnumerable ; Fx.Assert(rawInputData != null, "rawInputData is null or is not IEnumerable ."); ModelProperty editingProperty = activityModelItem.Properties[propertyValue.ParentProperty.PropertyName]; bool allowDuplication = EditorOptionsAttribute.GetOptionValue(editingProperty.Attributes, TypeCollectionPropertyEditor.AllowDuplicate, true); EditorWindow editorWindow = new EditorWindow(activityModelItem, rawInputData, context, activityModelItem.View, allowDuplication); if (editorWindow.ShowOkCancel()) { using (var commitEditingScope = inputData.BeginEdit(System.Activities.Core.Presentation.SR.ChangeTypeCollectionEditingScopeDesc)) { inputData.Clear(); foreach (Type i in ((TypeCollectionDesigner)editorWindow.Content).UpdatedTypeCollection) { inputData.Add(i); } commitEditingScope.Complete(); } } } sealed class EditorWindow : WorkflowElementDialog { public EditorWindow(ModelItem activity, IEnumerable data, EditingContext context, DependencyObject owner, bool allowDuplicate) { this.ModelItem = activity; this.Context = context; this.Owner = owner; this.EnableMaximizeButton = false; this.EnableMinimizeButton = false; this.MinWidth = 450; this.MinHeight = 260; this.WindowResizeMode = ResizeMode.CanResize; this.WindowSizeToContent = SizeToContent.Manual; TypeCollectionDesigner content = new TypeCollectionDesigner() { Context = context, InitialTypeCollection = data, AllowDuplicate = allowDuplicate, ParentDialog = this, }; this.Title = (string)content.Resources["controlTitle"]; this.Content = content; this.OnOk = content.OnOK; this.HelpKeyword = HelpKeywords.TypeCollectionEditor; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- sqlstateclientmanager.cs
- VisualBrush.cs
- ItemContainerProviderWrapper.cs
- PropertyDescriptorCollection.cs
- NativeMethods.cs
- MSAAEventDispatcher.cs
- TextBoxDesigner.cs
- KeyedPriorityQueue.cs
- MemberNameValidator.cs
- ButtonFieldBase.cs
- EntityDataReader.cs
- StaticTextPointer.cs
- TrackingServices.cs
- Registry.cs
- EventSetterHandlerConverter.cs
- ThreadStaticAttribute.cs
- UnsafeNativeMethods.cs
- LogStream.cs
- ProcessStartInfo.cs
- IODescriptionAttribute.cs
- EnumValAlphaComparer.cs
- ExpressionLexer.cs
- Triangle.cs
- CharacterBuffer.cs
- RankException.cs
- RayHitTestParameters.cs
- InputScopeConverter.cs
- ChangeNode.cs
- ScriptControlDescriptor.cs
- DbConnectionOptions.cs
- ClonableStack.cs
- DrawToolTipEventArgs.cs
- BamlCollectionHolder.cs
- MetabaseReader.cs
- TaskSchedulerException.cs
- DesignerActionPanel.cs
- ImageFormatConverter.cs
- DataTemplateKey.cs
- SafeNativeMethods.cs
- SizeValueSerializer.cs
- ObjectDataSourceFilteringEventArgs.cs
- SiblingIterators.cs
- CreatingCookieEventArgs.cs
- IPEndPoint.cs
- ControlCollection.cs
- DistributedTransactionPermission.cs
- PublisherIdentityPermission.cs
- ProfessionalColorTable.cs
- EnvelopedPkcs7.cs
- CustomAssemblyResolver.cs
- VolatileEnlistmentMultiplexing.cs
- QuaternionAnimation.cs
- ImageIndexConverter.cs
- ProxyGenerator.cs
- SchemaLookupTable.cs
- RtfControls.cs
- DeadCharTextComposition.cs
- ProcessingInstructionAction.cs
- DataKeyCollection.cs
- SelectionItemPattern.cs
- OleTxTransactionInfo.cs
- DrawingVisualDrawingContext.cs
- PartBasedPackageProperties.cs
- FormsIdentity.cs
- XPathExpr.cs
- UrlMappingsSection.cs
- ReadWriteObjectLock.cs
- EdgeModeValidation.cs
- XmlAnyAttributeAttribute.cs
- AccessDataSourceWizardForm.cs
- WebPartConnectionsDisconnectVerb.cs
- XmlMemberMapping.cs
- Signature.cs
- CodeIterationStatement.cs
- Win32SafeHandles.cs
- DataSourceExpressionCollection.cs
- WhitespaceRuleReader.cs
- SqlFactory.cs
- TypeConverterAttribute.cs
- ModuleConfigurationInfo.cs
- JpegBitmapDecoder.cs
- GenericTextProperties.cs
- GC.cs
- AuditLogLocation.cs
- WindowsScroll.cs
- MemberNameValidator.cs
- DoubleLink.cs
- DataSourceIDConverter.cs
- SoapAttributeOverrides.cs
- Buffer.cs
- Command.cs
- CompositeDataBoundControl.cs
- TemplatedWizardStep.cs
- HostingEnvironment.cs
- TextTreePropertyUndoUnit.cs
- Size3DValueSerializer.cs
- JsonReader.cs
- PriorityBindingExpression.cs
- IDispatchConstantAttribute.cs
- SamlAssertion.cs