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
- XmlChildEnumerator.cs
- ControlPaint.cs
- EventLogEntry.cs
- BoundField.cs
- UInt64.cs
- RankException.cs
- GenericUI.cs
- Selection.cs
- Typography.cs
- CryptoApi.cs
- CommandEventArgs.cs
- SequentialUshortCollection.cs
- PagedDataSource.cs
- EpmSourcePathSegment.cs
- CompilerCollection.cs
- MessageFilterTable.cs
- RuntimeArgumentHandle.cs
- OperandQuery.cs
- HttpListenerException.cs
- SerializationSectionGroup.cs
- CompilerResults.cs
- Enumerable.cs
- SplineKeyFrames.cs
- StructuralType.cs
- Process.cs
- ServicePointManager.cs
- PageAsyncTask.cs
- MetadataItem_Static.cs
- Select.cs
- ToolStripContainerDesigner.cs
- FrameworkPropertyMetadata.cs
- CorePropertiesFilter.cs
- Column.cs
- Transform.cs
- CodeTypeMemberCollection.cs
- DependencyPropertyKind.cs
- IgnorePropertiesAttribute.cs
- XmlSchemaAnnotation.cs
- PermissionRequestEvidence.cs
- DataGridViewElement.cs
- wgx_exports.cs
- ValueChangedEventManager.cs
- WebPartEditVerb.cs
- EncodingTable.cs
- DbProviderServices.cs
- ErrorInfoXmlDocument.cs
- MetafileHeader.cs
- ToolCreatedEventArgs.cs
- RuntimeWrappedException.cs
- MaterialGroup.cs
- DayRenderEvent.cs
- DataViewManagerListItemTypeDescriptor.cs
- HttpChannelFactory.cs
- TemplatedWizardStep.cs
- TcpHostedTransportConfiguration.cs
- XamlInterfaces.cs
- COM2Enum.cs
- WindowsBrush.cs
- ToolTipAutomationPeer.cs
- KeyValueConfigurationElement.cs
- ModuleBuilder.cs
- StringResourceManager.cs
- ListControlConvertEventArgs.cs
- LookupBindingPropertiesAttribute.cs
- VectorAnimation.cs
- DocumentDesigner.cs
- DataError.cs
- DiscoveryDocumentLinksPattern.cs
- Rules.cs
- WinEventHandler.cs
- Action.cs
- connectionpool.cs
- RegexWorker.cs
- OutputCacheSettingsSection.cs
- RedirectionProxy.cs
- DbConnectionStringBuilder.cs
- FirstQueryOperator.cs
- XmlAtomicValue.cs
- EdmFunction.cs
- ScriptMethodAttribute.cs
- SmtpNetworkElement.cs
- DataBindingsDialog.cs
- sqlmetadatafactory.cs
- SqlReorderer.cs
- TextRangeAdaptor.cs
- OdbcPermission.cs
- ByteAnimationUsingKeyFrames.cs
- TableCellCollection.cs
- Hashtable.cs
- MSAAEventDispatcher.cs
- filewebresponse.cs
- NumericUpDownAccelerationCollection.cs
- RequestCachingSection.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- DocumentReference.cs
- FlowDocumentPage.cs
- UnmanagedMemoryAccessor.cs
- uribuilder.cs
- SR.Designer.cs
- CancelRequestedQuery.cs