Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / DesignBindingValueUIHandler.cs / 1 / DesignBindingValueUIHandler.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms.Design { using System; using System.Collections; using System.Windows.Forms; using Microsoft.Win32; using System.ComponentModel; using System.ComponentModel.Design; using System.Drawing.Design; using System.Drawing; ////// /// /// internal class DesignBindingValueUIHandler : IDisposable { private Bitmap dataBitmap; internal Bitmap DataBitmap { get { if (dataBitmap == null) { dataBitmap = new Bitmap(typeof(DesignBindingValueUIHandler), "BoundProperty.bmp"); dataBitmap.MakeTransparent(); } return dataBitmap; } } internal void OnGetUIValueItem(ITypeDescriptorContext context, PropertyDescriptor propDesc, ArrayList valueUIItemList){ if (context.Instance is Control) { Control control = (Control) context.Instance; foreach (Binding binding in control.DataBindings) { // Only add the binding if it is one of the data source types we recognize. Otherwise, our drop-down list won't show it as // an option, which is confusing. if ((binding.DataSource is IListSource || binding.DataSource is IList || binding.DataSource is Array) && binding.PropertyName.Equals(propDesc.Name)) { valueUIItemList.Add(new LocalUIItem(this, binding)); } } } } class LocalUIItem : PropertyValueUIItem { Binding binding; internal LocalUIItem(DesignBindingValueUIHandler handler, Binding binding) : base(handler.DataBitmap, new PropertyValueUIItemInvokeHandler(handler.OnPropertyValueUIItemInvoke), GetToolTip(binding)) { this.binding = binding; } internal Binding Binding { get { return binding; } } static string GetToolTip(Binding binding) { string name = ""; if (binding.DataSource is IComponent) { IComponent comp = (IComponent) binding.DataSource; if (comp.Site != null) { name = comp.Site.Name; } } if (name.Length == 0) { name = "(List)"; } name += " - " + binding.BindingMemberInfo.BindingMember; return name; } } private void OnPropertyValueUIItemInvoke(ITypeDescriptorContext context, PropertyDescriptor descriptor, PropertyValueUIItem invokedItem) { LocalUIItem localItem = (LocalUIItem) invokedItem; IServiceProvider sop = null; Control control = localItem.Binding.Control; if (control.Site != null) { sop = ( IServiceProvider ) control.Site.GetService(typeof( IServiceProvider )); } if (sop != null) { AdvancedBindingPropertyDescriptor.advancedBindingEditor.EditValue(context, sop, control.DataBindings); } } public void Dispose() { if (dataBitmap != null) { dataBitmap.Dispose(); } } } } // 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
- DataRowExtensions.cs
- MultipleViewPattern.cs
- VersionPair.cs
- IntranetCredentialPolicy.cs
- DataGridViewTopLeftHeaderCell.cs
- Form.cs
- RecordsAffectedEventArgs.cs
- ChannelServices.cs
- SyndicationElementExtension.cs
- InheritanceContextChangedEventManager.cs
- RemoteWebConfigurationHost.cs
- ZipIOExtraFieldElement.cs
- TemplatePartAttribute.cs
- ComponentChangingEvent.cs
- MarkupCompilePass1.cs
- ClientConvert.cs
- util.cs
- TypeSystem.cs
- TaskFileService.cs
- QueuePathDialog.cs
- AnnotationStore.cs
- TableDetailsRow.cs
- AutomationElementCollection.cs
- RadioButtonStandardAdapter.cs
- RegistryExceptionHelper.cs
- HttpSessionStateWrapper.cs
- TemplateControlCodeDomTreeGenerator.cs
- TextTreeRootNode.cs
- CategoryValueConverter.cs
- ConstraintStruct.cs
- WebSysDefaultValueAttribute.cs
- AuthenticationException.cs
- XmlConverter.cs
- XmlTextWriter.cs
- TypeToken.cs
- TemplateBuilder.cs
- RegexNode.cs
- ListViewItem.cs
- CachedPathData.cs
- NamespaceInfo.cs
- TargetPerspective.cs
- EntityTypeEmitter.cs
- Quad.cs
- FixedHighlight.cs
- XmlWrappingReader.cs
- TextEditorParagraphs.cs
- SQLBytes.cs
- VectorAnimationBase.cs
- GridViewEditEventArgs.cs
- SQLResource.cs
- EntityDataSourceViewSchema.cs
- HeaderUtility.cs
- InvokePatternIdentifiers.cs
- ExceptionWrapper.cs
- UnauthorizedAccessException.cs
- ViewStateModeByIdAttribute.cs
- JsonEnumDataContract.cs
- XamlPointCollectionSerializer.cs
- StructuralCache.cs
- PlatformCulture.cs
- IDispatchConstantAttribute.cs
- BookmarkResumptionRecord.cs
- TextAction.cs
- Events.cs
- BoundField.cs
- XmlSubtreeReader.cs
- DiscoveryClientDocuments.cs
- RIPEMD160Managed.cs
- OleDbException.cs
- InternalPermissions.cs
- CheckBox.cs
- CapabilitiesAssignment.cs
- DependencyPropertyHelper.cs
- StringFreezingAttribute.cs
- StylusOverProperty.cs
- remotingproxy.cs
- ArrayTypeMismatchException.cs
- nulltextcontainer.cs
- MembershipSection.cs
- FlowDocumentReaderAutomationPeer.cs
- InternalDispatchObject.cs
- Vector3DCollectionConverter.cs
- ExpressionVisitor.cs
- TemplatedWizardStep.cs
- M3DUtil.cs
- ValueChangedEventManager.cs
- OutputCacheSettings.cs
- CodeThrowExceptionStatement.cs
- ProcessHost.cs
- MaskDesignerDialog.cs
- SimplePropertyEntry.cs
- DataGridItemEventArgs.cs
- Constraint.cs
- CodeVariableDeclarationStatement.cs
- QilList.cs
- _NativeSSPI.cs
- MimeTypeMapper.cs
- PageStatePersister.cs
- PolyQuadraticBezierSegment.cs
- OleDbException.cs