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
- IdentifierCollection.cs
- AstTree.cs
- CodeGenerationManager.cs
- XmlSchemaSimpleContentRestriction.cs
- PropertyTab.cs
- BitVector32.cs
- UTF7Encoding.cs
- SqlGatherProducedAliases.cs
- RegexInterpreter.cs
- ChannelOptions.cs
- BlockExpression.cs
- DataStreams.cs
- MetabaseSettingsIis7.cs
- PageAdapter.cs
- Vector3DKeyFrameCollection.cs
- EventHandlerService.cs
- GestureRecognitionResult.cs
- SchemaManager.cs
- ExpandSegmentCollection.cs
- ServiceContractGenerationContext.cs
- odbcmetadatacollectionnames.cs
- DynamicDiscoveryDocument.cs
- UserPersonalizationStateInfo.cs
- WebPartManagerInternals.cs
- WebPartConnectionCollection.cs
- MenuItemStyleCollection.cs
- XmlSignificantWhitespace.cs
- MachineKeyConverter.cs
- InputDevice.cs
- HtmlInputImage.cs
- JsonFormatWriterGenerator.cs
- SharedPersonalizationStateInfo.cs
- ReachObjectContext.cs
- SafeCryptHandles.cs
- SchemaConstraints.cs
- loginstatus.cs
- Certificate.cs
- SqlCrossApplyToCrossJoin.cs
- CreateUserErrorEventArgs.cs
- AnyAllSearchOperator.cs
- Margins.cs
- LongTypeConverter.cs
- ToolStripItem.cs
- IndentedTextWriter.cs
- CanonicalizationDriver.cs
- RegexCompilationInfo.cs
- Configuration.cs
- Part.cs
- ServiceProviders.cs
- EntityCollectionChangedParams.cs
- WebPartsPersonalizationAuthorization.cs
- InternalBase.cs
- RunWorkerCompletedEventArgs.cs
- InfocardInteractiveChannelInitializer.cs
- GeometryHitTestParameters.cs
- NativeMethods.cs
- ThreadPool.cs
- RegexRunnerFactory.cs
- BooleanExpr.cs
- AutomationTextAttribute.cs
- AutoCompleteStringCollection.cs
- PartialCachingControl.cs
- PropertyHelper.cs
- DataRowComparer.cs
- ImmutablePropertyDescriptorGridEntry.cs
- InkCanvas.cs
- RoleGroupCollectionEditor.cs
- Options.cs
- InputScopeConverter.cs
- DataGridItemEventArgs.cs
- CallSiteHelpers.cs
- ProcessThreadCollection.cs
- ClassHandlersStore.cs
- WindowsScroll.cs
- ConfigXmlReader.cs
- EnumValAlphaComparer.cs
- DateTimeSerializationSection.cs
- ScriptRegistrationManager.cs
- ConnectionsZoneAutoFormat.cs
- CompletionProxy.cs
- MediaScriptCommandRoutedEventArgs.cs
- Screen.cs
- HttpHeaderCollection.cs
- NullableBoolConverter.cs
- RegexGroupCollection.cs
- NameService.cs
- SQLConvert.cs
- Animatable.cs
- GenericRootAutomationPeer.cs
- ZipIOBlockManager.cs
- GenerateScriptTypeAttribute.cs
- PersonalizablePropertyEntry.cs
- _ShellExpression.cs
- DataGridHeadersVisibilityToVisibilityConverter.cs
- Oci.cs
- UnmanagedHandle.cs
- DefaultWorkflowSchedulerService.cs
- PersistenceTask.cs
- securitymgrsite.cs
- DeflateStreamAsyncResult.cs