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
- MetabaseServerConfig.cs
- FixedHyperLink.cs
- URLMembershipCondition.cs
- ProxyElement.cs
- AuthenticationManager.cs
- MeshGeometry3D.cs
- RoutedEvent.cs
- FontNamesConverter.cs
- GraphicsContext.cs
- SqlCacheDependency.cs
- SecurityElement.cs
- LayoutEditorPart.cs
- DrawListViewSubItemEventArgs.cs
- InputElement.cs
- WebBaseEventKeyComparer.cs
- BinaryEditor.cs
- StandardMenuStripVerb.cs
- ResourceExpressionEditorSheet.cs
- DesignConnectionCollection.cs
- DesignerSerializationOptionsAttribute.cs
- DataTableNewRowEvent.cs
- BitVector32.cs
- SqlCommandSet.cs
- VirtualDirectoryMappingCollection.cs
- GridView.cs
- TransformedBitmap.cs
- TemplateAction.cs
- HttpCachePolicyWrapper.cs
- SqlProviderManifest.cs
- TraceLevelHelper.cs
- OdbcRowUpdatingEvent.cs
- CodeCommentStatement.cs
- SQLInt32.cs
- SingleObjectCollection.cs
- WebPartConnectionsConfigureVerb.cs
- TransportConfigurationTypeElement.cs
- TextSearch.cs
- EmptyStringExpandableObjectConverter.cs
- WindowsFormsHostAutomationPeer.cs
- QilUnary.cs
- PropertyToken.cs
- _OverlappedAsyncResult.cs
- StylusPointProperties.cs
- TextParagraphView.cs
- ArraySortHelper.cs
- ApplicationFileCodeDomTreeGenerator.cs
- RegisteredDisposeScript.cs
- AssertSection.cs
- TryCatchDesigner.xaml.cs
- TextViewSelectionProcessor.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- AxWrapperGen.cs
- ValuePatternIdentifiers.cs
- XPathDocument.cs
- XPathNodePointer.cs
- wgx_render.cs
- HelpFileFileNameEditor.cs
- AccessedThroughPropertyAttribute.cs
- TraceLog.cs
- counter.cs
- ArglessEventHandlerProxy.cs
- ImageListUtils.cs
- ZipPackage.cs
- CircleEase.cs
- WebEventCodes.cs
- SrgsElement.cs
- metrodevice.cs
- AmbiguousMatchException.cs
- InternalConfigHost.cs
- GZipDecoder.cs
- DeviceContext2.cs
- SettingsBindableAttribute.cs
- SimpleFileLog.cs
- RefType.cs
- DataTableMapping.cs
- XamlSerializerUtil.cs
- BindingFormattingDialog.cs
- AsyncCompletedEventArgs.cs
- dataSvcMapFileLoader.cs
- DataGridViewCheckBoxColumn.cs
- ModelProperty.cs
- WebPartActionVerb.cs
- MobilePage.cs
- ChooseAction.cs
- QilSortKey.cs
- CompositeFontParser.cs
- ConstraintEnumerator.cs
- XmlLanguageConverter.cs
- CodeCompiler.cs
- ProtocolsConfiguration.cs
- TransactionFilter.cs
- ArrayElementGridEntry.cs
- WebPartHeaderCloseVerb.cs
- XmlSchemaSimpleContentRestriction.cs
- MetadataItemCollectionFactory.cs
- RawStylusInputReport.cs
- PathGradientBrush.cs
- LineGeometry.cs
- XPathArrayIterator.cs
- CompilerGeneratedAttribute.cs