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
- InfoCardBaseException.cs
- TextBox.cs
- CatalogPart.cs
- ForwardPositionQuery.cs
- UnsafeNativeMethods.cs
- VirtualDirectoryMapping.cs
- SoapAttributes.cs
- TabletDevice.cs
- HiddenFieldPageStatePersister.cs
- TextFormatter.cs
- ConnectorSelectionGlyph.cs
- EntitySet.cs
- TableLayout.cs
- ProcessModelSection.cs
- SplineQuaternionKeyFrame.cs
- DataGridPreparingCellForEditEventArgs.cs
- x509utils.cs
- ObjectConverter.cs
- EntityTemplateFactory.cs
- WorkflowPrinting.cs
- WebExceptionStatus.cs
- TraceContextRecord.cs
- ItemList.cs
- EllipseGeometry.cs
- DBParameter.cs
- Int32Collection.cs
- FrameworkContentElement.cs
- MatrixTransform3D.cs
- SqlException.cs
- CTreeGenerator.cs
- PropertyEmitter.cs
- HostSecurityManager.cs
- HttpRuntime.cs
- ToolStripContainerDesigner.cs
- Timeline.cs
- WebServiceMethodData.cs
- CheckBoxRenderer.cs
- AddInEnvironment.cs
- FilteredSchemaElementLookUpTable.cs
- FragmentQueryKB.cs
- ColorBlend.cs
- DerivedKeySecurityTokenStub.cs
- HttpsHostedTransportConfiguration.cs
- httpserverutility.cs
- XmlNavigatorStack.cs
- TypeConverterHelper.cs
- ColumnCollection.cs
- SchemaConstraints.cs
- OrderedHashRepartitionEnumerator.cs
- SQLSingleStorage.cs
- XhtmlBasicCommandAdapter.cs
- IntegerValidatorAttribute.cs
- EmbeddedMailObjectsCollection.cs
- SQLConvert.cs
- HttpListenerPrefixCollection.cs
- PathStreamGeometryContext.cs
- AddInActivator.cs
- DynamicArgumentDialog.cs
- PerspectiveCamera.cs
- TreeWalker.cs
- LicenseProviderAttribute.cs
- InputProcessorProfilesLoader.cs
- AutomationIdentifierGuids.cs
- ListViewEditEventArgs.cs
- DynamicPropertyHolder.cs
- DynamicRenderer.cs
- ECDiffieHellmanCngPublicKey.cs
- GenericEnumerator.cs
- SmiContextFactory.cs
- SqlBuilder.cs
- TcpServerChannel.cs
- HotSpotCollection.cs
- DocumentPage.cs
- ApplicationFileCodeDomTreeGenerator.cs
- ObjectPersistData.cs
- IOException.cs
- CodeNamespaceImport.cs
- BitmapEffectvisualstate.cs
- DynamicArgumentDialog.cs
- NetMsmqSecurity.cs
- HttpServerUtilityWrapper.cs
- CssStyleCollection.cs
- DBBindings.cs
- LocalIdKeyIdentifierClause.cs
- ParentQuery.cs
- NativeMethods.cs
- DecoderNLS.cs
- DataGridCell.cs
- IdentifierService.cs
- StringDictionaryEditor.cs
- TreeNodeStyle.cs
- SqlConnectionPoolGroupProviderInfo.cs
- GraphicsContainer.cs
- NameNode.cs
- MultiPartWriter.cs
- TextDecorationUnitValidation.cs
- StringFreezingAttribute.cs
- StrokeSerializer.cs
- GZipDecoder.cs
- UniqueEventHelper.cs