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
- SafeCertificateStore.cs
- ISCIIEncoding.cs
- httpapplicationstate.cs
- ExceptionHelpers.cs
- TextServicesDisplayAttribute.cs
- MultiByteCodec.cs
- ResourceReferenceExpression.cs
- TraceData.cs
- WSTrustFeb2005.cs
- VariableElement.cs
- ResourceCategoryAttribute.cs
- mda.cs
- SqlErrorCollection.cs
- NetStream.cs
- ContentFileHelper.cs
- XmlQuerySequence.cs
- DurableOperationContext.cs
- HashCoreRequest.cs
- AttributeProviderAttribute.cs
- X509DefaultServiceCertificateElement.cs
- EntityDataSource.cs
- Rotation3DKeyFrameCollection.cs
- CallbackException.cs
- WebPart.cs
- WCFBuildProvider.cs
- OutputCacheModule.cs
- WebPartTracker.cs
- COM2IProvidePropertyBuilderHandler.cs
- StylusPointPropertyId.cs
- DataGridViewCheckBoxCell.cs
- Pool.cs
- RoleService.cs
- ApplicationException.cs
- HwndSourceKeyboardInputSite.cs
- OAVariantLib.cs
- ThicknessAnimationUsingKeyFrames.cs
- SHA1Managed.cs
- DesignTimeSiteMapProvider.cs
- DictionaryBase.cs
- TreeNodeEventArgs.cs
- AvtEvent.cs
- GradientStop.cs
- PropertyGridView.cs
- ProcessInfo.cs
- FontStyles.cs
- SerializationSectionGroup.cs
- DataKeyCollection.cs
- PageCatalogPart.cs
- MatrixTransform.cs
- QueryReaderSettings.cs
- CssTextWriter.cs
- SecurityHeader.cs
- WebBrowserContainer.cs
- PerformanceCounterPermissionAttribute.cs
- CallbackHandler.cs
- JsonWriter.cs
- Point3D.cs
- AdornerLayer.cs
- ExpressionBuilderCollection.cs
- TextParaLineResult.cs
- RelationshipEndCollection.cs
- UserControl.cs
- ReliableOutputSessionChannel.cs
- ValidationError.cs
- SamlSubjectStatement.cs
- HashHelpers.cs
- UserNamePasswordValidator.cs
- DateTimeFormatInfo.cs
- EventMemberCodeDomSerializer.cs
- ElementsClipboardData.cs
- LayoutSettings.cs
- ImageCollectionCodeDomSerializer.cs
- SizeValueSerializer.cs
- DataContractSerializerOperationGenerator.cs
- AddingNewEventArgs.cs
- Operand.cs
- SqlFunctions.cs
- OdbcConnectionStringbuilder.cs
- ListBoxAutomationPeer.cs
- BatchWriter.cs
- TextPointer.cs
- KeysConverter.cs
- OrderedDictionary.cs
- DescendentsWalkerBase.cs
- QilList.cs
- Transform3DGroup.cs
- OdbcUtils.cs
- XmlQualifiedNameTest.cs
- VarRemapper.cs
- DispatchWrapper.cs
- ExtensionFile.cs
- StructuredProperty.cs
- MsdtcWrapper.cs
- SoapExtensionImporter.cs
- BitmapMetadataBlob.cs
- EntityDataSourceReferenceGroup.cs
- WriteTimeStream.cs
- DurableOperationAttribute.cs
- CapabilitiesSection.cs
- ProxyAttribute.cs