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
- DifferencingCollection.cs
- HitTestDrawingContextWalker.cs
- TextParagraphCache.cs
- CompilationUtil.cs
- TemplateBamlTreeBuilder.cs
- TypeHelper.cs
- DockingAttribute.cs
- TargetParameterCountException.cs
- WindowCollection.cs
- LiteralTextContainerControlBuilder.cs
- RestHandler.cs
- ChameleonKey.cs
- GlyphManager.cs
- PrimitiveXmlSerializers.cs
- ChannelSinkStacks.cs
- TransactedReceiveScope.cs
- RepeatInfo.cs
- AnnotationMap.cs
- FloaterParaClient.cs
- ToolStripItemClickedEventArgs.cs
- TripleDESCryptoServiceProvider.cs
- CssClassPropertyAttribute.cs
- sortedlist.cs
- OdbcConnectionString.cs
- CreateParams.cs
- KeyboardEventArgs.cs
- CompilationLock.cs
- X509SecurityTokenAuthenticator.cs
- ZipIOLocalFileDataDescriptor.cs
- DataStreams.cs
- TableDetailsCollection.cs
- EventLogSession.cs
- XmlSchemaSimpleTypeList.cs
- ADMembershipUser.cs
- GeometryCollection.cs
- XmlEncoding.cs
- XmlSchemaSimpleType.cs
- XPathDocumentBuilder.cs
- Window.cs
- StaticTextPointer.cs
- Attribute.cs
- InternalConfigHost.cs
- Converter.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- regiisutil.cs
- StringCollection.cs
- DatatypeImplementation.cs
- ApplyTemplatesAction.cs
- WebUtil.cs
- SerializerWriterEventHandlers.cs
- StandardToolWindows.cs
- Vector3DAnimationBase.cs
- XmlDomTextWriter.cs
- mactripleDES.cs
- ProtocolsConfigurationEntry.cs
- Transform3DGroup.cs
- bidPrivateBase.cs
- FormatterServices.cs
- Lookup.cs
- FieldAccessException.cs
- ComponentDispatcher.cs
- DataException.cs
- ReachUIElementCollectionSerializerAsync.cs
- Int16KeyFrameCollection.cs
- XmlNamespaceMapping.cs
- SemanticResolver.cs
- Rect.cs
- SafeProcessHandle.cs
- ProtocolsConfigurationEntry.cs
- DragEvent.cs
- Win32Exception.cs
- ListMarkerSourceInfo.cs
- XamlPointCollectionSerializer.cs
- ChildTable.cs
- FixedNode.cs
- AssemblyBuilder.cs
- Scalars.cs
- LicenseException.cs
- TracedNativeMethods.cs
- SmiConnection.cs
- XmlSchemaSimpleContentExtension.cs
- GrammarBuilder.cs
- StrokeNodeEnumerator.cs
- ZipArchive.cs
- RegexCapture.cs
- FrameworkPropertyMetadata.cs
- ConstraintCollection.cs
- PerfService.cs
- InternalMappingException.cs
- DetailsViewRowCollection.cs
- TreeNodeSelectionProcessor.cs
- Walker.cs
- ProtocolViolationException.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- AspNetHostingPermission.cs
- ComboBoxAutomationPeer.cs
- ActivityExecutor.cs
- HttpCapabilitiesEvaluator.cs
- AppDomainAttributes.cs
- DataGridAutomationPeer.cs