Code:
/ FX-1434 / FX-1434 / 1.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
- XmlChildEnumerator.cs
- ToolZone.cs
- PropertyMetadata.cs
- ExpandSegmentCollection.cs
- SerializationIncompleteException.cs
- XmlSchemaObjectCollection.cs
- WorkingDirectoryEditor.cs
- BitStream.cs
- RootBuilder.cs
- ObjectDataSourceMethodEventArgs.cs
- StaticFileHandler.cs
- SamlDoNotCacheCondition.cs
- DynamicEntity.cs
- ComponentCommands.cs
- IProvider.cs
- WebBrowserContainer.cs
- tibetanshape.cs
- ToolStripContextMenu.cs
- DoubleAnimation.cs
- XmlNamespaceManager.cs
- safemediahandle.cs
- Vector3DAnimation.cs
- DesignerTextViewAdapter.cs
- shaper.cs
- PermissionSetEnumerator.cs
- WindowsHyperlink.cs
- IsolatedStorageFilePermission.cs
- SessionStateSection.cs
- DecoratedNameAttribute.cs
- Descriptor.cs
- WebPartMenu.cs
- RequiredAttributeAttribute.cs
- EqualityComparer.cs
- HostingPreferredMapPath.cs
- SocketStream.cs
- SchemaImporter.cs
- TemplateAction.cs
- XPathAncestorIterator.cs
- KnownTypes.cs
- RuntimeConfig.cs
- Latin1Encoding.cs
- MultiBindingExpression.cs
- AssemblyName.cs
- TemplateXamlParser.cs
- ImageAnimator.cs
- validationstate.cs
- CustomSignedXml.cs
- CheckedListBox.cs
- FlowPosition.cs
- ErrorEventArgs.cs
- Baml2006ReaderFrame.cs
- AudienceUriMode.cs
- PropertyRecord.cs
- RewritingValidator.cs
- JulianCalendar.cs
- RawStylusSystemGestureInputReport.cs
- RegisteredArrayDeclaration.cs
- VisualStyleElement.cs
- BaseHashHelper.cs
- DataBinder.cs
- TransformGroup.cs
- Label.cs
- Block.cs
- BindMarkupExtensionSerializer.cs
- ValidatedControlConverter.cs
- SoapReflector.cs
- Bits.cs
- ParseChildrenAsPropertiesAttribute.cs
- RevocationPoint.cs
- ProxyManager.cs
- CodeNamespaceCollection.cs
- Missing.cs
- DataListCommandEventArgs.cs
- TextParagraph.cs
- LogConverter.cs
- IntellisenseTextBox.cs
- FixedBufferAttribute.cs
- SqlCacheDependencySection.cs
- ProxyFragment.cs
- Parameter.cs
- Resources.Designer.cs
- DataSetUtil.cs
- DataSourceControlBuilder.cs
- ContentElementAutomationPeer.cs
- QilInvoke.cs
- NullableConverter.cs
- PrintController.cs
- XmlWriterSettings.cs
- HtmlWindowCollection.cs
- DispatcherTimer.cs
- SystemIPAddressInformation.cs
- LogWriteRestartAreaState.cs
- ToolStripPanel.cs
- UIHelper.cs
- InternalConfigHost.cs
- Label.cs
- SHA256.cs
- WebPartZoneCollection.cs
- PageTrueTypeFont.cs
- ItemType.cs