Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / listviewsubitemcollectioneditor.cs / 1 / listviewsubitemcollectioneditor.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="System.Windows.Forms.Design.ListViewSubItemCollectionEditor..ctor(System.Type)")] namespace System.Windows.Forms.Design { using System.Runtime.InteropServices; using System.Diagnostics; using System; using System.IO; using System.Collections; using System.ComponentModel; using System.ComponentModel.Design; using System.Windows.Forms; using System.Drawing; using System.Design; using System.Drawing.Design; using System.Windows.Forms.ComponentModel; ////// /// internal class ListViewSubItemCollectionEditor : CollectionEditor { private static int count = 0; ListViewItem.ListViewSubItem firstSubItem = null; ////// Provides an editor for an image collection. ////// /// public ListViewSubItemCollectionEditor(Type type) : base(type){ } ///Initializes a new instance of the ///class. /// /// // VSWhidbey 122909: Set the Name property in the item's properties. protected override object CreateInstance(Type type) { object instance = base.CreateInstance(type); // slap in a default site-like name if (instance is ListViewItem.ListViewSubItem) { ((ListViewItem.ListViewSubItem)instance).Name = SR.GetString(SR.ListViewSubItemBaseName) + count++; } return instance; } ///Creates an instance of the specified type in the collection. ////// /// Retrieves the display text for the given list sub item. /// protected override string GetDisplayText(object value) { string text; if (value == null) { return string.Empty; } PropertyDescriptor prop = TypeDescriptor.GetDefaultProperty(CollectionType); if (prop != null && prop.PropertyType == typeof(string)) { text = (string)prop.GetValue(value); if (text != null && text.Length > 0) { return text; } } text = TypeDescriptor.GetConverter(value).ConvertToString(value); if (text == null || text.Length == 0) { text = value.GetType().Name; } return text; } ///protected override object[] GetItems(object editValue) { // take the fist sub item out of the collection ListViewItem.ListViewSubItemCollection subItemsColl = (ListViewItem.ListViewSubItemCollection) editValue; // add all the other sub items object[] values = new object[subItemsColl.Count]; ((ICollection)subItemsColl).CopyTo(values, 0); if (values.Length > 0) { // save the first sub item firstSubItem = subItemsColl[0]; // now return the rest. // object[] subValues = new object[values.Length - 1]; Array.Copy(values, 1, subValues, 0, subValues.Length); values = subValues; } return values; } /// protected override object SetItems(object editValue, object[] value) { IList list = editValue as IList; list.Clear(); list.Add(firstSubItem); for (int i = 0; i < value.Length; i ++) { list.Add(value[i]); } return editValue; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FlowDocumentPaginator.cs
- VisualTransition.cs
- DataObjectMethodAttribute.cs
- CustomTypeDescriptor.cs
- BeginStoryboard.cs
- DesignerDataSourceView.cs
- UInt64.cs
- Clipboard.cs
- ParsedAttributeCollection.cs
- DeferredSelectedIndexReference.cs
- UrlPath.cs
- X509SecurityTokenProvider.cs
- SQLBytes.cs
- OletxDependentTransaction.cs
- ConfigXmlComment.cs
- ECDiffieHellmanCngPublicKey.cs
- PageSettings.cs
- SmiEventStream.cs
- IxmlLineInfo.cs
- ToolStripControlHost.cs
- PropertyGeneratedEventArgs.cs
- XmlDataDocument.cs
- Win32PrintDialog.cs
- ContextStaticAttribute.cs
- NullReferenceException.cs
- TextBoxAutoCompleteSourceConverter.cs
- DocumentAutomationPeer.cs
- CqlLexer.cs
- WebPartDisplayModeEventArgs.cs
- ConstraintCollection.cs
- SmiMetaDataProperty.cs
- DependencyObjectProvider.cs
- LogRecordSequence.cs
- ObjectDataSourceMethodEventArgs.cs
- MouseEventArgs.cs
- SafeRightsManagementQueryHandle.cs
- NullableIntSumAggregationOperator.cs
- TextParagraphCache.cs
- XpsS0ValidatingLoader.cs
- _UriTypeConverter.cs
- SortKey.cs
- PageCatalogPart.cs
- ByteStream.cs
- ChameleonKey.cs
- IPAddress.cs
- XmlSchemaSet.cs
- ByteStack.cs
- FrameworkElementFactoryMarkupObject.cs
- Transform3DCollection.cs
- AnnotationAdorner.cs
- PriorityItem.cs
- HttpServerUtilityBase.cs
- ProtocolViolationException.cs
- NonBatchDirectoryCompiler.cs
- OrderByQueryOptionExpression.cs
- ConfigXmlCDataSection.cs
- DbParameterCollectionHelper.cs
- WindowsTab.cs
- DbParameterHelper.cs
- FlowDocumentReader.cs
- AttributeCollection.cs
- VersionPair.cs
- EndPoint.cs
- DataBindingCollectionConverter.cs
- ConfigurationSectionHelper.cs
- NamespaceMapping.cs
- DiscoveryCallbackBehavior.cs
- HttpPostedFileWrapper.cs
- StringCollection.cs
- OleDbConnection.cs
- ParameterCollection.cs
- WebBrowser.cs
- ToolStripRenderEventArgs.cs
- VSWCFServiceContractGenerator.cs
- XmlSerializerAssemblyAttribute.cs
- WsatConfiguration.cs
- AVElementHelper.cs
- XomlCompilerError.cs
- _OSSOCK.cs
- MetadataCollection.cs
- Part.cs
- AttachedAnnotationChangedEventArgs.cs
- QuerySelectOp.cs
- BitmapEffect.cs
- DynamicILGenerator.cs
- MissingMethodException.cs
- MenuTracker.cs
- AnnotationObservableCollection.cs
- Vector3DAnimation.cs
- ListChangedEventArgs.cs
- MappingItemCollection.cs
- Hex.cs
- PrintingPermission.cs
- MDIWindowDialog.cs
- EntityChangedParams.cs
- _LazyAsyncResult.cs
- PrinterSettings.cs
- PrePrepareMethodAttribute.cs
- EmptyControlCollection.cs
- MetadataCache.cs