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
- CSharpCodeProvider.cs
- StrokeRenderer.cs
- EmptyEnumerable.cs
- ScrollContentPresenter.cs
- EndEvent.cs
- PhysicalFontFamily.cs
- SwitchElementsCollection.cs
- PersonalizationStateInfoCollection.cs
- DataGridColumnCollectionEditor.cs
- ZeroOpNode.cs
- X509Extension.cs
- MessagePropertyFilter.cs
- BoundsDrawingContextWalker.cs
- Roles.cs
- MouseCaptureWithinProperty.cs
- DesignerAdRotatorAdapter.cs
- ProfessionalColors.cs
- EncoderNLS.cs
- ListControl.cs
- QueryReaderSettings.cs
- ObfuscationAttribute.cs
- CodeTypeMember.cs
- NullableIntMinMaxAggregationOperator.cs
- TransportListener.cs
- VisualSerializer.cs
- ExtendedProperty.cs
- Double.cs
- AlignmentYValidation.cs
- FigureParagraph.cs
- ProfileGroupSettingsCollection.cs
- AutoResizedEvent.cs
- FixedPosition.cs
- EntityDataSourceView.cs
- LabelLiteral.cs
- PersistenceTypeAttribute.cs
- DataServiceStreamProviderWrapper.cs
- PropertyNames.cs
- CodeDelegateInvokeExpression.cs
- EncryptedKeyIdentifierClause.cs
- HTTPNotFoundHandler.cs
- SyndicationFeed.cs
- SplayTreeNode.cs
- HMACSHA512.cs
- DataGridViewBindingCompleteEventArgs.cs
- XmlSerializerNamespaces.cs
- BasicBrowserDialog.designer.cs
- TextContainerHelper.cs
- CodeDomConfigurationHandler.cs
- Permission.cs
- DataServiceBuildProvider.cs
- OSFeature.cs
- EntityProviderServices.cs
- SrgsElementFactoryCompiler.cs
- SafeBitVector32.cs
- TextMetrics.cs
- RectAnimationBase.cs
- Pair.cs
- AttributeCollection.cs
- InProcStateClientManager.cs
- HttpSessionStateWrapper.cs
- Socket.cs
- NumericPagerField.cs
- TouchFrameEventArgs.cs
- BlurEffect.cs
- SurrogateSelector.cs
- XmlChildNodes.cs
- DataSourceDesigner.cs
- RenderDataDrawingContext.cs
- NetworkInformationPermission.cs
- AmbiguousMatchException.cs
- ListViewDeletedEventArgs.cs
- FileInfo.cs
- XmlSerializerOperationFormatter.cs
- SQLDecimal.cs
- LogicalExpr.cs
- DLinqAssociationProvider.cs
- MasterPageParser.cs
- RootNamespaceAttribute.cs
- TypeSystemHelpers.cs
- TdsEnums.cs
- TypeReference.cs
- ExpressionBuilderCollection.cs
- InstanceValue.cs
- RegistryPermission.cs
- Geometry3D.cs
- _ScatterGatherBuffers.cs
- MembershipUser.cs
- PopupRoot.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- ClonableStack.cs
- XmlDataSourceNodeDescriptor.cs
- ExecutionContext.cs
- MergeExecutor.cs
- CompilerWrapper.cs
- FederatedMessageSecurityOverHttp.cs
- TextServicesProperty.cs
- SweepDirectionValidation.cs
- ServerIdentity.cs
- BuildManager.cs
- DrawingContext.cs