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
- NotSupportedException.cs
- EventlogProvider.cs
- XmlTextReaderImplHelpers.cs
- ElementNotEnabledException.cs
- RouteTable.cs
- ApplicationContext.cs
- Zone.cs
- COM2PictureConverter.cs
- Context.cs
- BinaryWriter.cs
- CodeTypeReferenceExpression.cs
- WebConfigurationHostFileChange.cs
- DateTimeParse.cs
- Panel.cs
- ButtonStandardAdapter.cs
- SafeWaitHandle.cs
- MemberListBinding.cs
- SoapFault.cs
- TypeToStringValueConverter.cs
- RegexInterpreter.cs
- AssertValidation.cs
- NumericUpDownAcceleration.cs
- TreeNodeCollection.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- _ScatterGatherBuffers.cs
- DataGridColumnCollection.cs
- BehaviorEditorPart.cs
- SessionStateContainer.cs
- SelectionWordBreaker.cs
- CodeGenerationManager.cs
- FaultContractAttribute.cs
- HtmlShim.cs
- TextAction.cs
- XsltCompileContext.cs
- InheritablePropertyChangeInfo.cs
- RequestCachePolicyConverter.cs
- filewebrequest.cs
- StaticContext.cs
- ToolBarPanel.cs
- NativeMethodsCLR.cs
- TextTreeTextNode.cs
- RegistrySecurity.cs
- XmlSchemaGroup.cs
- BuildProvider.cs
- SelectionProviderWrapper.cs
- CodeAttributeArgument.cs
- UserPersonalizationStateInfo.cs
- SchemaElementLookUpTableEnumerator.cs
- RegexBoyerMoore.cs
- ReliabilityContractAttribute.cs
- DependentTransaction.cs
- ScrollProviderWrapper.cs
- FrameworkTextComposition.cs
- URLEditor.cs
- SecurityKeyUsage.cs
- WebRequest.cs
- PkcsUtils.cs
- input.cs
- AnyAllSearchOperator.cs
- WebRequestModuleElement.cs
- QuestionEventArgs.cs
- XsltCompileContext.cs
- connectionpool.cs
- RegexTree.cs
- VisualProxy.cs
- HttpWrapper.cs
- LinkConverter.cs
- DnsPermission.cs
- SearchExpression.cs
- ProfileServiceManager.cs
- PinnedBufferMemoryStream.cs
- DataSourceSelectArguments.cs
- RepeatInfo.cs
- MenuItem.cs
- X509IssuerSerialKeyIdentifierClause.cs
- ObjectCacheHost.cs
- ISFTagAndGuidCache.cs
- SafeBuffer.cs
- ListViewItemMouseHoverEvent.cs
- TextStore.cs
- StylusButtonEventArgs.cs
- SoapReflectionImporter.cs
- ObjectCacheSettings.cs
- ConfigurationSectionGroupCollection.cs
- EdgeProfileValidation.cs
- CustomGrammar.cs
- WebServiceResponse.cs
- RenderingEventArgs.cs
- BridgeDataRecord.cs
- ComponentSerializationService.cs
- GeneralTransformGroup.cs
- EntityDataSourceSelectedEventArgs.cs
- DynamicPropertyReader.cs
- SqlDependency.cs
- UnaryNode.cs
- SHA256Managed.cs
- RunInstallerAttribute.cs
- GridViewRowEventArgs.cs
- ProcessHost.cs
- XmlSchemaValidator.cs