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
- XmlUTF8TextReader.cs
- TypographyProperties.cs
- HttpServerUtilityWrapper.cs
- XmlImplementation.cs
- GuidelineCollection.cs
- EntryPointNotFoundException.cs
- ExeConfigurationFileMap.cs
- HybridDictionary.cs
- CustomLineCap.cs
- DependencyPropertyValueSerializer.cs
- NameTable.cs
- DataControlImageButton.cs
- MulticastOption.cs
- XmlAnyElementAttribute.cs
- WebBrowser.cs
- AdobeCFFWrapper.cs
- RunClient.cs
- InstallerTypeAttribute.cs
- EventLog.cs
- DetailsViewDeletedEventArgs.cs
- RegexWriter.cs
- ConfigUtil.cs
- BrowsableAttribute.cs
- TextEndOfSegment.cs
- InputGestureCollection.cs
- UpdateException.cs
- GridViewColumn.cs
- SqlConnectionFactory.cs
- MultipartIdentifier.cs
- EventListenerClientSide.cs
- CancellationHandlerDesigner.cs
- HttpProfileGroupBase.cs
- BitmapCacheBrush.cs
- DataSourceGeneratorException.cs
- WindowsListView.cs
- AuthStoreRoleProvider.cs
- ProcessInfo.cs
- CharacterBuffer.cs
- DetailsViewPageEventArgs.cs
- MetadataImporterQuotas.cs
- ImportException.cs
- BitmapCacheBrush.cs
- GeometryHitTestResult.cs
- DataPagerField.cs
- AsyncResult.cs
- IgnoreSection.cs
- Rect.cs
- ITextView.cs
- SID.cs
- FormsAuthenticationModule.cs
- WpfGeneratedKnownProperties.cs
- DummyDataSource.cs
- FixedSOMGroup.cs
- selecteditemcollection.cs
- MethodToken.cs
- PenCursorManager.cs
- SafeBitVector32.cs
- DataListDesigner.cs
- TypedTableGenerator.cs
- WebBrowserNavigatingEventHandler.cs
- CompositeCollection.cs
- TextRange.cs
- SaveFileDialog.cs
- TerminatorSinks.cs
- MethodBody.cs
- ControlCollection.cs
- precedingsibling.cs
- ControlEvent.cs
- ParseNumbers.cs
- ConfigsHelper.cs
- DSACryptoServiceProvider.cs
- ClickablePoint.cs
- AsyncResult.cs
- dbenumerator.cs
- IPipelineRuntime.cs
- SoapEnumAttribute.cs
- ExpressionPrinter.cs
- TextWriter.cs
- TextStore.cs
- Propagator.JoinPropagator.cs
- grammarelement.cs
- DataControlPagerLinkButton.cs
- DispatchChannelSink.cs
- AxisAngleRotation3D.cs
- BigInt.cs
- XmlDataImplementation.cs
- RadioButtonBaseAdapter.cs
- WeakEventManager.cs
- ColorTransform.cs
- ComUdtElementCollection.cs
- CodeNamespaceImportCollection.cs
- HttpProfileBase.cs
- HealthMonitoringSectionHelper.cs
- UnsafeNativeMethodsPenimc.cs
- ContextBase.cs
- QueryInterceptorAttribute.cs
- NotSupportedException.cs
- IPEndPoint.cs
- MediaElement.cs
- GatewayDefinition.cs