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
- _Events.cs
- ColumnReorderedEventArgs.cs
- DrawingVisualDrawingContext.cs
- Rect3DConverter.cs
- DescendantQuery.cs
- UserUseLicenseDictionaryLoader.cs
- OdbcConnectionOpen.cs
- CodePrimitiveExpression.cs
- CustomAttributeSerializer.cs
- GenericAuthenticationEventArgs.cs
- UpDownBase.cs
- ToolStripRenderEventArgs.cs
- GridEntry.cs
- ResolveNameEventArgs.cs
- SystemIPv6InterfaceProperties.cs
- RequestDescription.cs
- MetadataItemEmitter.cs
- PersistencePipeline.cs
- storagemappingitemcollection.viewdictionary.cs
- UnsafeNativeMethodsTablet.cs
- safemediahandle.cs
- DesignTableCollection.cs
- FilteredDataSetHelper.cs
- EdgeModeValidation.cs
- TextParagraphView.cs
- PriorityItem.cs
- GZipStream.cs
- ParameterModifier.cs
- SchemaTypeEmitter.cs
- SQLDouble.cs
- MimeFormImporter.cs
- ScrollBar.cs
- BooleanExpr.cs
- ReferentialConstraint.cs
- SQLSingle.cs
- SpecularMaterial.cs
- MemberNameValidator.cs
- CornerRadiusConverter.cs
- X500Name.cs
- ParagraphResult.cs
- ResourceDescriptionAttribute.cs
- AvTraceDetails.cs
- CodeNamespaceImport.cs
- CapabilitiesState.cs
- GeneralTransform3DTo2D.cs
- DesignerActionList.cs
- securitycriticaldata.cs
- PingReply.cs
- HMACSHA384.cs
- TransactedReceiveScope.cs
- BuildProviderAppliesToAttribute.cs
- EnumValidator.cs
- HtmlWindowCollection.cs
- FrameworkRichTextComposition.cs
- SEHException.cs
- FillBehavior.cs
- SplitterCancelEvent.cs
- XmlWhitespace.cs
- FragmentQueryKB.cs
- HostingPreferredMapPath.cs
- Completion.cs
- arabicshape.cs
- BatchParser.cs
- ResourcesGenerator.cs
- EndpointNameMessageFilter.cs
- FormViewInsertEventArgs.cs
- PerfCounterSection.cs
- DateTimeOffsetStorage.cs
- WebRequest.cs
- SafePEFileHandle.cs
- SqlBooleanMismatchVisitor.cs
- XmlTextReaderImplHelpers.cs
- TextRangeEditLists.cs
- GeometryModel3D.cs
- ISAPIWorkerRequest.cs
- ConcurrencyMode.cs
- DBSqlParserTable.cs
- ObjectSecurity.cs
- SubMenuStyleCollection.cs
- StringDictionaryWithComparer.cs
- SmtpReplyReaderFactory.cs
- UnsafeNativeMethods.cs
- SqlDataSourceCommandEventArgs.cs
- BorderGapMaskConverter.cs
- BitmapEffectCollection.cs
- CngProvider.cs
- VisemeEventArgs.cs
- UiaCoreTypesApi.cs
- Style.cs
- DomainConstraint.cs
- UserControl.cs
- ToolStripPanelRow.cs
- XamlPoint3DCollectionSerializer.cs
- String.cs
- PassportPrincipal.cs
- ActivationArguments.cs
- CompositeScriptReference.cs
- ToolStripProgressBar.cs
- ValuePatternIdentifiers.cs
- StorageBasedPackageProperties.cs