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
- Image.cs
- SafeIUnknown.cs
- unsafenativemethodstextservices.cs
- ViewStateModeByIdAttribute.cs
- EndCreateSecurityTokenRequest.cs
- Variable.cs
- CalendarButton.cs
- TableLayoutRowStyleCollection.cs
- WindowsEditBox.cs
- MenuItemStyleCollection.cs
- QilDataSource.cs
- COSERVERINFO.cs
- DefaultTextStore.cs
- ArgumentsParser.cs
- Int16AnimationUsingKeyFrames.cs
- XPathAncestorQuery.cs
- ListGeneralPage.cs
- Aes.cs
- ChangePassword.cs
- StreamUpdate.cs
- PropertyDescriptorGridEntry.cs
- InvalidateEvent.cs
- ObjectKeyFrameCollection.cs
- CheckBoxFlatAdapter.cs
- UrlMappingCollection.cs
- XmlBaseReader.cs
- BitmapCacheBrush.cs
- AccessControlList.cs
- ExpressionTable.cs
- WindowsAuthenticationEventArgs.cs
- LessThan.cs
- CustomAttributeSerializer.cs
- TextCollapsingProperties.cs
- SystemIPGlobalProperties.cs
- PreviewPageInfo.cs
- HitTestWithGeometryDrawingContextWalker.cs
- ConfigPathUtility.cs
- DescendantQuery.cs
- SafeBitVector32.cs
- ObjectQueryState.cs
- CreateRefExpr.cs
- Subtract.cs
- AssociationTypeEmitter.cs
- MemberCollection.cs
- ConfigXmlDocument.cs
- InvalidFilterCriteriaException.cs
- StartFileNameEditor.cs
- DetailsViewDeleteEventArgs.cs
- SqlConnectionPoolGroupProviderInfo.cs
- HttpWebRequestElement.cs
- PathData.cs
- SqlTypesSchemaImporter.cs
- PackageRelationshipSelector.cs
- PersonalizableTypeEntry.cs
- BaseParser.cs
- InkCanvasSelection.cs
- counter.cs
- DelegatingTypeDescriptionProvider.cs
- ScalarConstant.cs
- LoginCancelEventArgs.cs
- DatasetMethodGenerator.cs
- ReflectPropertyDescriptor.cs
- SocketException.cs
- ClientScriptManagerWrapper.cs
- TextTabProperties.cs
- IPGlobalProperties.cs
- DbgUtil.cs
- GridViewRowEventArgs.cs
- Attachment.cs
- ThumbAutomationPeer.cs
- XmlLinkedNode.cs
- ColorConverter.cs
- DrawingContextWalker.cs
- DecoderFallback.cs
- WindowsSlider.cs
- ScriptManagerProxy.cs
- SiteMapDataSource.cs
- Size.cs
- ArrayExtension.cs
- FontStyles.cs
- HScrollProperties.cs
- HwndHostAutomationPeer.cs
- SqlConnectionFactory.cs
- WebEvents.cs
- ConfigXmlElement.cs
- RemoveStoryboard.cs
- CommonDialog.cs
- TemplateBindingExpression.cs
- OleDbRowUpdatingEvent.cs
- ResourcePermissionBase.cs
- UserInitiatedNavigationPermission.cs
- PtsHost.cs
- ImportContext.cs
- Select.cs
- Util.cs
- ArrangedElementCollection.cs
- FixedTextContainer.cs
- DataTableReaderListener.cs
- ProcessHostConfigUtils.cs
- COSERVERINFO.cs