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;
IEnumerable rawInputData = 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
- CodeExporter.cs
- AssemblyLoader.cs
- DataGridViewTopLeftHeaderCell.cs
- CapabilitiesState.cs
- InputScopeManager.cs
- XPathScanner.cs
- StandardOleMarshalObject.cs
- XmlAnyElementAttribute.cs
- SerializationAttributes.cs
- ConfigurationManagerInternalFactory.cs
- CodeEventReferenceExpression.cs
- DescendantBaseQuery.cs
- TableLayoutSettingsTypeConverter.cs
- ServiceReference.cs
- PropertyChangedEventManager.cs
- HierarchicalDataBoundControl.cs
- VolatileEnlistmentMultiplexing.cs
- ColorAnimation.cs
- EditorBrowsableAttribute.cs
- Predicate.cs
- MessageHeaderException.cs
- ProfileSection.cs
- XappLauncher.cs
- DataGridTablesFactory.cs
- DrawListViewSubItemEventArgs.cs
- shaper.cs
- Parsers.cs
- WorkflowNamespace.cs
- SendingRequestEventArgs.cs
- DbBuffer.cs
- MethodExpr.cs
- TreeView.cs
- XPathDescendantIterator.cs
- LinkLabel.cs
- SqlUserDefinedTypeAttribute.cs
- MemberAccessException.cs
- TypeInfo.cs
- WindowsToolbarItemAsMenuItem.cs
- SafeSecurityHelper.cs
- InvalidOperationException.cs
- TimeIntervalCollection.cs
- URLAttribute.cs
- AsyncStreamReader.cs
- NavigationPropertyEmitter.cs
- ToolTipService.cs
- BitVec.cs
- OutOfMemoryException.cs
- DecimalConstantAttribute.cs
- PeerApplication.cs
- WebPartChrome.cs
- SessionEndingCancelEventArgs.cs
- OdbcEnvironment.cs
- FormsAuthenticationUser.cs
- UpDownBase.cs
- WebPartConnectionsDisconnectVerb.cs
- CompositeFontInfo.cs
- SimplePropertyEntry.cs
- GridViewPageEventArgs.cs
- ClientClassGenerator.cs
- SQLUtility.cs
- SecureStringHasher.cs
- CodeIdentifiers.cs
- VisualTreeUtils.cs
- MulticastOption.cs
- PagedDataSource.cs
- MetadataWorkspace.cs
- ExpanderAutomationPeer.cs
- FamilyTypefaceCollection.cs
- httpstaticobjectscollection.cs
- WeakHashtable.cs
- ManualResetEvent.cs
- Frame.cs
- WizardSideBarListControlItem.cs
- CacheChildrenQuery.cs
- LinkDescriptor.cs
- AsyncContentLoadedEventArgs.cs
- AttributeSetAction.cs
- Transform3DCollection.cs
- _SSPIWrapper.cs
- CounterSample.cs
- RegexCharClass.cs
- ToolZoneDesigner.cs
- TypedElement.cs
- PeerContact.cs
- CodeDelegateInvokeExpression.cs
- Base64Encoder.cs
- AmbientValueAttribute.cs
- WebPartConnectionsEventArgs.cs
- RichTextBoxConstants.cs
- ProgressBar.cs
- ToolBarOverflowPanel.cs
- DefinitionBase.cs
- FixedTextSelectionProcessor.cs
- DesignerActionKeyboardBehavior.cs
- ConfigurationSection.cs
- ConnectionInterfaceCollection.cs
- TypedTableBaseExtensions.cs
- DataGridViewUtilities.cs
- DeferredSelectedIndexReference.cs
- HashStream.cs