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
- System.Data_BID.cs
- FullTextBreakpoint.cs
- SqlDelegatedTransaction.cs
- ElementAction.cs
- DataRelationPropertyDescriptor.cs
- CodeArgumentReferenceExpression.cs
- InitializingNewItemEventArgs.cs
- DataControlField.cs
- FlowDocumentScrollViewer.cs
- FloatMinMaxAggregationOperator.cs
- OleDbParameter.cs
- EncryptedKey.cs
- DataSetMappper.cs
- CodeCommentStatement.cs
- HtmlControlAdapter.cs
- ColorEditor.cs
- CodeDirectionExpression.cs
- StringBuilder.cs
- SelectionEditingBehavior.cs
- ResourceManagerWrapper.cs
- ITreeGenerator.cs
- DatatypeImplementation.cs
- ListChangedEventArgs.cs
- ToolboxDataAttribute.cs
- RangeContentEnumerator.cs
- GroupItemAutomationPeer.cs
- ProcessHost.cs
- MobileControlDesigner.cs
- columnmapkeybuilder.cs
- DES.cs
- ExceptionUtility.cs
- ColumnResult.cs
- ToolStrip.cs
- GroupBoxRenderer.cs
- ThrowOnMultipleAssignment.cs
- SingleAnimation.cs
- ScrollChrome.cs
- AppSettingsReader.cs
- CustomErrorsSection.cs
- validationstate.cs
- LinkClickEvent.cs
- OSFeature.cs
- RectangleGeometry.cs
- SqlUserDefinedTypeAttribute.cs
- InputLangChangeRequestEvent.cs
- BaseDataBoundControl.cs
- UriSectionReader.cs
- VerbConverter.cs
- SQLRoleProvider.cs
- Pen.cs
- UriSection.cs
- SelectingProviderEventArgs.cs
- processwaithandle.cs
- ScriptReference.cs
- RotateTransform.cs
- XmlExceptionHelper.cs
- SafeFileMappingHandle.cs
- SqlDataSourceConfigureSelectPanel.cs
- PanelDesigner.cs
- ColorDialog.cs
- RelatedPropertyManager.cs
- NullableDecimalAverageAggregationOperator.cs
- DocumentOrderQuery.cs
- QilInvokeLateBound.cs
- AutoScrollExpandMessageFilter.cs
- SettingsProperty.cs
- ReadOnlyCollection.cs
- EventHandlersStore.cs
- __ComObject.cs
- Console.cs
- Rule.cs
- Parameter.cs
- DrawingImage.cs
- ObjectDataSourceView.cs
- SessionEndingCancelEventArgs.cs
- MaterialGroup.cs
- TriState.cs
- SqlCacheDependencyDatabase.cs
- MessageHeaderDescription.cs
- DataGridHeaderBorder.cs
- NotifyCollectionChangedEventArgs.cs
- ServiceElementCollection.cs
- SHA1CryptoServiceProvider.cs
- DataGridViewCellContextMenuStripNeededEventArgs.cs
- IndicShape.cs
- WeakReadOnlyCollection.cs
- DictionaryEntry.cs
- TimeoutValidationAttribute.cs
- IPCCacheManager.cs
- ByteViewer.cs
- OpenFileDialog.cs
- SQLDateTimeStorage.cs
- ControlAdapter.cs
- BindingsSection.cs
- DatePickerAutomationPeer.cs
- ReadOnlyDictionary.cs
- SqlMetaData.cs
- TrackingProfileDeserializationException.cs
- BitmapSourceSafeMILHandle.cs
- StopStoryboard.cs