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
- BridgeDataReader.cs
- ManagedCodeMarkers.cs
- DuplicateWaitObjectException.cs
- EdmToObjectNamespaceMap.cs
- RectangleF.cs
- TextServicesCompartmentEventSink.cs
- SHA256Managed.cs
- ExpressionPrefixAttribute.cs
- ButtonFieldBase.cs
- NetPeerTcpBindingCollectionElement.cs
- DataGridCaption.cs
- LinqDataSourceSelectEventArgs.cs
- ColumnCollectionEditor.cs
- DictionaryEntry.cs
- BinHexDecoder.cs
- MessageAction.cs
- XmlAutoDetectWriter.cs
- EpmCustomContentSerializer.cs
- DecimalConverter.cs
- DocumentSchemaValidator.cs
- EmptyCollection.cs
- XmlObjectSerializerContext.cs
- FontCacheUtil.cs
- WSHttpSecurity.cs
- ProfileModule.cs
- PenThreadWorker.cs
- ProfileSettings.cs
- FormsAuthenticationCredentials.cs
- TraceContext.cs
- Style.cs
- ImplicitInputBrush.cs
- CategoryValueConverter.cs
- IndexedEnumerable.cs
- Int32CollectionConverter.cs
- CfgParser.cs
- AppSettingsExpressionBuilder.cs
- ClassDataContract.cs
- DetailsViewPagerRow.cs
- SelectionListDesigner.cs
- ToolStripDropDownButton.cs
- PerfService.cs
- ProxyWebPartManager.cs
- Ops.cs
- ByteStack.cs
- DataGridViewLinkColumn.cs
- RadioButtonBaseAdapter.cs
- RelatedEnd.cs
- DataGridViewHeaderCell.cs
- FilterFactory.cs
- ConcatQueryOperator.cs
- Oid.cs
- ClientUtils.cs
- HtmlTableRowCollection.cs
- FormViewDeleteEventArgs.cs
- XmlSchemaComplexType.cs
- WebPartMovingEventArgs.cs
- DateTimeOffset.cs
- FaultReason.cs
- SafeProcessHandle.cs
- ConstructorNeedsTagAttribute.cs
- StringAnimationUsingKeyFrames.cs
- PageParserFilter.cs
- HtmlInputCheckBox.cs
- StylusPointDescription.cs
- LocatorBase.cs
- Storyboard.cs
- ParallelTimeline.cs
- RijndaelManaged.cs
- TextWriterEngine.cs
- StateMachine.cs
- MetadataException.cs
- FormsAuthenticationModule.cs
- FontFamilyConverter.cs
- EmbeddedMailObject.cs
- References.cs
- ConsoleTraceListener.cs
- RelatedPropertyManager.cs
- SqlDataReaderSmi.cs
- DrawingGroup.cs
- WorkflowCompensationBehavior.cs
- XmlParserContext.cs
- ConditionalAttribute.cs
- TimeIntervalCollection.cs
- LinkedList.cs
- DataTrigger.cs
- PaperSize.cs
- ModuleElement.cs
- HandlerMappingMemo.cs
- FlowDocumentView.cs
- ContextProperty.cs
- PathData.cs
- CommonEndpointBehaviorElement.cs
- SafeFileHandle.cs
- RandomNumberGenerator.cs
- DoubleAnimationUsingPath.cs
- AxisAngleRotation3D.cs
- DispatcherOperation.cs
- FrameSecurityDescriptor.cs
- ApplicationBuildProvider.cs
- RoutedPropertyChangedEventArgs.cs