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
- PasswordRecovery.cs
- EndEvent.cs
- SimpleBitVector32.cs
- MaskInputRejectedEventArgs.cs
- Margins.cs
- StackBuilderSink.cs
- DesignerAttribute.cs
- MexHttpsBindingElement.cs
- Configuration.cs
- ScrollChrome.cs
- HtmlInputSubmit.cs
- SpeechEvent.cs
- SafeThreadHandle.cs
- DataContractFormatAttribute.cs
- OracleColumn.cs
- DbParameterCollection.cs
- CommonRemoteMemoryBlock.cs
- ImportContext.cs
- AsyncOperationManager.cs
- XsdBuildProvider.cs
- TemplateField.cs
- SetStoryboardSpeedRatio.cs
- DesigntimeLicenseContext.cs
- ConfigurationStrings.cs
- xamlnodes.cs
- EntitySqlQueryCacheEntry.cs
- HwndHostAutomationPeer.cs
- FileDialog_Vista.cs
- WindowsSpinner.cs
- ExtenderHelpers.cs
- HttpResponse.cs
- QilScopedVisitor.cs
- TreeNodeBinding.cs
- SQLInt64.cs
- BitmapEffectInputConnector.cs
- ListDataBindEventArgs.cs
- Pkcs9Attribute.cs
- OleDbInfoMessageEvent.cs
- RoutedUICommand.cs
- Facet.cs
- XmlSchemaSimpleTypeRestriction.cs
- MailMessage.cs
- SettingsBindableAttribute.cs
- DatasetMethodGenerator.cs
- String.cs
- HttpListener.cs
- ListView.cs
- NonSerializedAttribute.cs
- DllNotFoundException.cs
- EndOfStreamException.cs
- WebPartMinimizeVerb.cs
- ElementMarkupObject.cs
- TokenizerHelper.cs
- UpdateCommand.cs
- MailAddressCollection.cs
- SQLByte.cs
- RegexCapture.cs
- ForeignKeyConstraint.cs
- DataGridViewColumnDesigner.cs
- Matrix.cs
- PathGeometry.cs
- XmlComment.cs
- PageHandlerFactory.cs
- StagingAreaInputItem.cs
- SelectionHighlightInfo.cs
- RawStylusInputReport.cs
- AttributeUsageAttribute.cs
- HttpProfileBase.cs
- ListViewItem.cs
- xdrvalidator.cs
- TypeCacheManager.cs
- UserNameSecurityTokenProvider.cs
- MTConfigUtil.cs
- BaseProcessor.cs
- ConvertEvent.cs
- MembershipPasswordException.cs
- DisposableCollectionWrapper.cs
- RoleManagerModule.cs
- Codec.cs
- _NestedMultipleAsyncResult.cs
- TextAction.cs
- RadioButtonPopupAdapter.cs
- MethodBuilderInstantiation.cs
- Rectangle.cs
- ScopedKnownTypes.cs
- DashStyles.cs
- HtmlControlDesigner.cs
- ContentPlaceHolder.cs
- PassportAuthentication.cs
- CodeAttributeArgument.cs
- CacheEntry.cs
- contentDescriptor.cs
- RequiredFieldValidator.cs
- ClientUIRequest.cs
- Canvas.cs
- TabPage.cs
- QueryParameter.cs
- TargetConverter.cs
- ConditionValidator.cs
- StrokeSerializer.cs