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
- MasterPageBuildProvider.cs
- CqlBlock.cs
- InternalCache.cs
- DataGridLinkButton.cs
- FlowDocumentView.cs
- XmlCollation.cs
- CursorConverter.cs
- TemplatePartAttribute.cs
- ToolStripItemClickedEventArgs.cs
- XmlAnyAttributeAttribute.cs
- HostDesigntimeLicenseContext.cs
- TTSEngineProxy.cs
- CounterSample.cs
- PathSegment.cs
- FieldDescriptor.cs
- ProcessHostServerConfig.cs
- Token.cs
- InternalDispatchObject.cs
- RangeBase.cs
- SqlConnectionHelper.cs
- XmlProcessingInstruction.cs
- ControlIdConverter.cs
- ClientOptions.cs
- CaretElement.cs
- SchemaImporterExtensionElementCollection.cs
- SqlParameter.cs
- WebPartCollection.cs
- WebServiceReceive.cs
- webeventbuffer.cs
- unsafenativemethodsother.cs
- XmlParserContext.cs
- RowType.cs
- StrokeSerializer.cs
- Polyline.cs
- InplaceBitmapMetadataWriter.cs
- BindingList.cs
- MetadataExchangeBindings.cs
- AlignmentYValidation.cs
- EvidenceTypeDescriptor.cs
- RootDesignerSerializerAttribute.cs
- JsonXmlDataContract.cs
- StatusBarAutomationPeer.cs
- WithStatement.cs
- XmlNamespaceMappingCollection.cs
- GridViewSortEventArgs.cs
- PointUtil.cs
- HtmlAnchor.cs
- SuppressIldasmAttribute.cs
- AuthorizationSection.cs
- ExtenderProviderService.cs
- SqlProcedureAttribute.cs
- _NTAuthentication.cs
- xdrvalidator.cs
- DefaultValidator.cs
- DataGridPagingPage.cs
- DrawingAttributes.cs
- EastAsianLunisolarCalendar.cs
- GeometryCombineModeValidation.cs
- ConnectionDemuxer.cs
- ConstNode.cs
- ZoneLinkButton.cs
- TextAdaptor.cs
- WebControlAdapter.cs
- HwndStylusInputProvider.cs
- BCLDebug.cs
- FontStretch.cs
- TreeNodeConverter.cs
- InstanceHandleReference.cs
- SkinBuilder.cs
- OverflowException.cs
- RegexMatchCollection.cs
- ThumbButtonInfo.cs
- XmlCustomFormatter.cs
- SplitContainer.cs
- PropertyTabAttribute.cs
- Vector3DCollectionConverter.cs
- BrowserDefinitionCollection.cs
- DataGridTable.cs
- ObjectConverter.cs
- ConfigXmlWhitespace.cs
- DefaultAssemblyResolver.cs
- BufferedGraphicsManager.cs
- TreeNodeClickEventArgs.cs
- TextElementAutomationPeer.cs
- ListBindingHelper.cs
- ChannelListenerBase.cs
- SortQuery.cs
- Rectangle.cs
- AddingNewEventArgs.cs
- XamlFrame.cs
- XmlMembersMapping.cs
- SqlDataSourceCommandEventArgs.cs
- PrePostDescendentsWalker.cs
- XhtmlBasicValidatorAdapter.cs
- InkCanvasSelectionAdorner.cs
- ControlBindingsCollection.cs
- AudioStateChangedEventArgs.cs
- SQLBytesStorage.cs
- DeobfuscatingStream.cs
- DataGridViewCellConverter.cs