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
- DataPagerFieldCollection.cs
- Glyph.cs
- DBBindings.cs
- DynamicRenderer.cs
- InternalTransaction.cs
- SetState.cs
- ZeroOpNode.cs
- DbConnectionStringCommon.cs
- ApplicationProxyInternal.cs
- Form.cs
- ValidationErrorEventArgs.cs
- ForAllOperator.cs
- XmlSchemaExporter.cs
- PrinterUnitConvert.cs
- ModuleBuilder.cs
- ComponentManagerBroker.cs
- CompilerScopeManager.cs
- NullPackagingPolicy.cs
- AsmxEndpointPickerExtension.cs
- XPathNavigator.cs
- ContainerControl.cs
- XmlSerializer.cs
- SelectorAutomationPeer.cs
- InvalidTimeZoneException.cs
- odbcmetadatacollectionnames.cs
- EnumMemberAttribute.cs
- ObjectParameterCollection.cs
- DiagnosticEventProvider.cs
- Reference.cs
- GridViewItemAutomationPeer.cs
- SchemaImporter.cs
- ToolStripPanelCell.cs
- WebResourceAttribute.cs
- FilteredDataSetHelper.cs
- UnauthorizedAccessException.cs
- RowUpdatedEventArgs.cs
- XPathNavigatorReader.cs
- ConnectorSelectionGlyph.cs
- X500Name.cs
- CodeSnippetCompileUnit.cs
- DeploymentSectionCache.cs
- RightsManagementEncryptionTransform.cs
- DataGridColumn.cs
- StaticSiteMapProvider.cs
- CollectionViewGroup.cs
- PeerName.cs
- UIElementParaClient.cs
- ConnectionProviderAttribute.cs
- WebException.cs
- EditingMode.cs
- DateTimeConverter.cs
- Panel.cs
- BitStack.cs
- ALinqExpressionVisitor.cs
- COSERVERINFO.cs
- Component.cs
- GrabHandleGlyph.cs
- TouchDevice.cs
- JsonFormatMapping.cs
- QEncodedStream.cs
- DiagnosticsConfiguration.cs
- TableAutomationPeer.cs
- AssociationTypeEmitter.cs
- SerTrace.cs
- InternalDispatchObject.cs
- ExpressionPrefixAttribute.cs
- IPipelineRuntime.cs
- DataControlPagerLinkButton.cs
- GZipStream.cs
- MimeTypeAttribute.cs
- ProfileGroupSettingsCollection.cs
- SqlDataReaderSmi.cs
- EventDescriptorCollection.cs
- FormViewCommandEventArgs.cs
- RegexMatchCollection.cs
- CommonRemoteMemoryBlock.cs
- AuthenticationService.cs
- CommandExpr.cs
- AspProxy.cs
- WebPartVerbCollection.cs
- ClientRoleProvider.cs
- TargetConverter.cs
- AuthenticationService.cs
- IsolatedStorageFilePermission.cs
- SqlDataSourceParameterParser.cs
- DataGridViewTextBoxColumn.cs
- WebPartRestoreVerb.cs
- DynamicPropertyHolder.cs
- MetadataArtifactLoaderCompositeFile.cs
- DataSourceControl.cs
- Fonts.cs
- util.cs
- FixedBufferAttribute.cs
- ChainOfDependencies.cs
- EditorZone.cs
- LogExtentCollection.cs
- EntityModelBuildProvider.cs
- HtmlLinkAdapter.cs
- PropertyTabAttribute.cs
- IUnknownConstantAttribute.cs