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
- WindowsHyperlink.cs
- ComboBoxItem.cs
- DecodeHelper.cs
- DataGridViewDataConnection.cs
- PropertyEmitter.cs
- FixedElement.cs
- MailWebEventProvider.cs
- WebHttpDispatchOperationSelectorData.cs
- DefaultDiscoveryService.cs
- MasterPageParser.cs
- ComPersistableTypeElementCollection.cs
- TypeInitializationException.cs
- ProjectionPruner.cs
- GZipUtils.cs
- arc.cs
- RenderingEventArgs.cs
- AffineTransform3D.cs
- WindowsHyperlink.cs
- Timeline.cs
- SqlDataSourceFilteringEventArgs.cs
- UpnEndpointIdentity.cs
- ProcessHostServerConfig.cs
- SchemaCreator.cs
- ComboBoxRenderer.cs
- NavigatingCancelEventArgs.cs
- SqlDataSourceCustomCommandEditor.cs
- GenerateHelper.cs
- FamilyTypefaceCollection.cs
- ExpressionHelper.cs
- DataStreamFromComStream.cs
- SqlCacheDependencyDatabase.cs
- DataProtection.cs
- DataSourceComponent.cs
- CustomWebEventKey.cs
- Boolean.cs
- XmlSignificantWhitespace.cs
- TextLineResult.cs
- WrappedOptions.cs
- SqlMethods.cs
- CodeTypeParameterCollection.cs
- EntityViewGenerator.cs
- Page.cs
- WmpBitmapDecoder.cs
- Floater.cs
- AmbientLight.cs
- ProcessManager.cs
- TextFragmentEngine.cs
- EditorZone.cs
- formatstringdialog.cs
- RangeBaseAutomationPeer.cs
- DataListItemEventArgs.cs
- Activity.cs
- TdsValueSetter.cs
- XhtmlTextWriter.cs
- ComboBoxRenderer.cs
- cookieexception.cs
- ConstraintEnumerator.cs
- WebPartMinimizeVerb.cs
- Encoding.cs
- ClaimSet.cs
- InvalidOperationException.cs
- Int32CollectionConverter.cs
- StorageEntityTypeMapping.cs
- ChangeBlockUndoRecord.cs
- OleDbMetaDataFactory.cs
- LocalizableAttribute.cs
- ArrayConverter.cs
- ComboBoxDesigner.cs
- HttpClientChannel.cs
- DispatcherHooks.cs
- HtmlShim.cs
- WeakReadOnlyCollection.cs
- LiteralControl.cs
- SqlFileStream.cs
- ManifestResourceInfo.cs
- StreamUpdate.cs
- DelimitedListTraceListener.cs
- AttachedPropertiesService.cs
- TypeInitializationException.cs
- ParseNumbers.cs
- LineBreakRecord.cs
- XmlSchemaAll.cs
- KeyValuePairs.cs
- DBDataPermission.cs
- XmlTextReader.cs
- ViewStateException.cs
- Brush.cs
- AsymmetricKeyExchangeFormatter.cs
- SQLDateTimeStorage.cs
- AutomationPropertyInfo.cs
- UInt64.cs
- ListBoxItemAutomationPeer.cs
- httpapplicationstate.cs
- TrackBarDesigner.cs
- SingletonChannelAcceptor.cs
- FormsAuthentication.cs
- UInt16.cs
- ObjectAnimationBase.cs
- AnnouncementSendsAsyncResult.cs
- smtppermission.cs