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
- RsaSecurityToken.cs
- ConfigXmlElement.cs
- XmlExtensionFunction.cs
- FormViewDeleteEventArgs.cs
- HtmlWindowCollection.cs
- SerializationStore.cs
- webclient.cs
- SymbolTable.cs
- BeginStoryboard.cs
- baseaxisquery.cs
- StickyNoteContentControl.cs
- DesignerToolStripControlHost.cs
- AsyncStreamReader.cs
- DbUpdateCommandTree.cs
- XmlDeclaration.cs
- DefinitionProperties.cs
- DropDownList.cs
- SqlTriggerAttribute.cs
- GACIdentityPermission.cs
- X500Name.cs
- JoinTreeNode.cs
- CommandSet.cs
- PersonalizationEntry.cs
- ListControl.cs
- SmiMetaData.cs
- CheckPair.cs
- ApplicationSettingsBase.cs
- CodeCastExpression.cs
- HttpWebResponse.cs
- CngAlgorithm.cs
- XmlEntity.cs
- ApplicationTrust.cs
- ToggleButtonAutomationPeer.cs
- RegistryPermission.cs
- TextWriter.cs
- DesignerAttribute.cs
- CacheDependency.cs
- RequestResizeEvent.cs
- DataServiceQueryException.cs
- messageonlyhwndwrapper.cs
- EntityDataSourceEntitySetNameItem.cs
- GCHandleCookieTable.cs
- OpCellTreeNode.cs
- AppDomainEvidenceFactory.cs
- TextReader.cs
- XmlSchemaSimpleContentExtension.cs
- CollectionViewGroupRoot.cs
- RenderData.cs
- HtmlInputRadioButton.cs
- VideoDrawing.cs
- PermissionRequestEvidence.cs
- MenuBase.cs
- TransformerConfigurationWizardBase.cs
- ToolStripManager.cs
- SmtpNtlmAuthenticationModule.cs
- ControlBuilderAttribute.cs
- SchemaElementDecl.cs
- GridViewCommandEventArgs.cs
- XamlStyleSerializer.cs
- CookielessData.cs
- CollectionChangedEventManager.cs
- ExportOptions.cs
- ToolBarOverflowPanel.cs
- ArraySegment.cs
- Trace.cs
- coordinator.cs
- ListSurrogate.cs
- EasingQuaternionKeyFrame.cs
- EventLogger.cs
- PointAnimationUsingKeyFrames.cs
- Perspective.cs
- StateManagedCollection.cs
- ComponentRenameEvent.cs
- Misc.cs
- EmptyStringExpandableObjectConverter.cs
- ApplicationDirectory.cs
- SqlDataSourceQueryEditor.cs
- KeyValueConfigurationCollection.cs
- ReadOnlyPermissionSet.cs
- EntityDataSourceDataSelection.cs
- BuildResult.cs
- CodeCompileUnit.cs
- LambdaCompiler.Unary.cs
- IncrementalReadDecoders.cs
- CompositeControl.cs
- NumberFormatter.cs
- ExtenderProvidedPropertyAttribute.cs
- __FastResourceComparer.cs
- StylusPoint.cs
- ChunkedMemoryStream.cs
- InputProviderSite.cs
- RuntimeConfigLKG.cs
- SessionIDManager.cs
- GeometryValueSerializer.cs
- WorkflowFileItem.cs
- ObjectManager.cs
- HtmlTableCell.cs
- TimerElapsedEvenArgs.cs
- ListItemCollection.cs
- LogicalMethodInfo.cs