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
- PresentationSource.cs
- AudioException.cs
- MasterPageBuildProvider.cs
- ExceptionHandler.cs
- DriveNotFoundException.cs
- FactoryId.cs
- WebConfigManager.cs
- StretchValidation.cs
- BehaviorEditorPart.cs
- Hyperlink.cs
- RootProfilePropertySettingsCollection.cs
- ColorConvertedBitmap.cs
- SafeEventLogWriteHandle.cs
- SHA1CryptoServiceProvider.cs
- bindurihelper.cs
- BitmapEffect.cs
- BaseUriHelper.cs
- XmlDomTextWriter.cs
- SvcMapFileLoader.cs
- ExpressionVisitor.cs
- XmlCompatibilityReader.cs
- EtwTrace.cs
- QueryableFilterRepeater.cs
- TextTreeTextElementNode.cs
- DragStartedEventArgs.cs
- CommandSet.cs
- IntersectQueryOperator.cs
- SiteMapProvider.cs
- GenerateDerivedKeyRequest.cs
- StoreContentChangedEventArgs.cs
- WebMessageFormatHelper.cs
- IISUnsafeMethods.cs
- RayMeshGeometry3DHitTestResult.cs
- XmlDocumentSerializer.cs
- Menu.cs
- PropertyCondition.cs
- OracleConnectionStringBuilder.cs
- RequestCacheEntry.cs
- SafeViewOfFileHandle.cs
- WindowsStreamSecurityUpgradeProvider.cs
- WindowsPen.cs
- PartialToken.cs
- UIElement.cs
- SessionStateUtil.cs
- ModifierKeysConverter.cs
- ManipulationCompletedEventArgs.cs
- AssemblyCollection.cs
- SessionPageStateSection.cs
- EncoderParameter.cs
- URL.cs
- ExpressionBindingCollection.cs
- ExtenderProvidedPropertyAttribute.cs
- PathBox.cs
- InfoCardRSACryptoProvider.cs
- CultureNotFoundException.cs
- HwndHost.cs
- Label.cs
- LookupBindingPropertiesAttribute.cs
- RoutedCommand.cs
- WizardSideBarListControlItem.cs
- SecurityHelper.cs
- RegistryPermission.cs
- SpellerInterop.cs
- ThemeableAttribute.cs
- Touch.cs
- WebPartVerbsEventArgs.cs
- ValidationSummary.cs
- PageParserFilter.cs
- URLIdentityPermission.cs
- VisualStyleTypesAndProperties.cs
- ProbeMatchesMessage11.cs
- EffectiveValueEntry.cs
- Invariant.cs
- DataGridViewToolTip.cs
- ObjectDataSourceDisposingEventArgs.cs
- ProxyWebPartManager.cs
- PerfCounterSection.cs
- HttpRuntime.cs
- ToolStripHighContrastRenderer.cs
- MethodExpr.cs
- _ShellExpression.cs
- Constant.cs
- TextPenaltyModule.cs
- WinFormsSecurity.cs
- WebBrowserHelper.cs
- FlowLayoutPanel.cs
- DbConnectionStringBuilder.cs
- HitTestResult.cs
- HttpValueCollection.cs
- NavigationCommands.cs
- SessionEndingEventArgs.cs
- ArrayHelper.cs
- DisplayMemberTemplateSelector.cs
- HuffmanTree.cs
- SvcMapFile.cs
- PolyLineSegment.cs
- DES.cs
- OperationResponse.cs
- XmlDigitalSignatureProcessor.cs
- GenerateTemporaryTargetAssembly.cs