Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / WinForms / Managed / System / WinForms / ControlBindingsCollection.cs / 1 / ControlBindingsCollection.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Windows.Forms {
using System;
using Microsoft.Win32;
using System.Diagnostics;
using System.ComponentModel;
using System.Collections;
using System.Globalization;
///
///
///
/// Represents the collection of data bindings for a control.
///
[DefaultEvent("CollectionChanged"),
Editor("System.Drawing.Design.UITypeEditor, " + AssemblyRef.SystemDrawing, typeof(System.Drawing.Design.UITypeEditor)),
TypeConverterAttribute("System.Windows.Forms.Design.ControlBindingsConverter, " + AssemblyRef.SystemDesign),
]
public class ControlBindingsCollection : BindingsCollection {
internal IBindableComponent control;
private DataSourceUpdateMode defaultDataSourceUpdateMode = DataSourceUpdateMode.OnValidation;
///
public ControlBindingsCollection(IBindableComponent control) : base() {
Debug.Assert(control != null, "How could a controlbindingscollection not have a control associated with it!");
this.control = control;
}
///
///
/// [To be supplied.]
///
public IBindableComponent BindableComponent {
get {
return this.control;
}
}
///
///
/// [To be supplied.]
///
public Control Control {
get {
return this.control as Control;
}
}
///
///
/// [To be supplied.]
///
public Binding this[string propertyName] {
get {
foreach (Binding binding in this) {
if (String.Equals(binding.PropertyName, propertyName, StringComparison.OrdinalIgnoreCase))
{
return binding;
}
}
return null;
}
}
///
///
/// Adds the binding to the collection. An ArgumentNullException is thrown if this binding
/// is null. An exception is thrown if a binding to the same target and Property as an existing binding or
/// if the binding's column isn't a valid column given this DataSource.Table's schema.
/// Fires the CollectionChangedEvent.
///
public new void Add(Binding binding) {
base.Add(binding);
}
///
///
/// Creates the binding and adds it to the collection. An InvalidBindingException is thrown
/// if this binding can't be constructed. An exception is thrown if a binding to the same target and Property as an existing binding or
/// if the binding's column isn't a valid column given this DataSource.Table's schema.
/// Fires the CollectionChangedEvent.
///
public Binding Add(string propertyName, object dataSource, string dataMember) {
return Add(propertyName, dataSource, dataMember, false, this.DefaultDataSourceUpdateMode, null, String.Empty, null);
}
///
public Binding Add(string propertyName, object dataSource, string dataMember, bool formattingEnabled) {
return Add(propertyName, dataSource, dataMember, formattingEnabled, this.DefaultDataSourceUpdateMode, null, String.Empty, null);
}
///
public Binding Add(string propertyName, object dataSource, string dataMember, bool formattingEnabled, DataSourceUpdateMode updateMode) {
return Add(propertyName, dataSource, dataMember, formattingEnabled, updateMode, null, String.Empty, null);
}
///
public Binding Add(string propertyName, object dataSource, string dataMember, bool formattingEnabled, DataSourceUpdateMode updateMode, object nullValue) {
return Add(propertyName, dataSource, dataMember, formattingEnabled, updateMode, nullValue, String.Empty, null);
}
///
public Binding Add(string propertyName, object dataSource, string dataMember, bool formattingEnabled, DataSourceUpdateMode updateMode, object nullValue, string formatString) {
return Add(propertyName, dataSource, dataMember, formattingEnabled, updateMode, nullValue, formatString, null);
}
///
public Binding Add(string propertyName, object dataSource, string dataMember, bool formattingEnabled, DataSourceUpdateMode updateMode, object nullValue, string formatString, IFormatProvider formatInfo) {
if (dataSource == null)
throw new ArgumentNullException("dataSource");
Binding binding = new Binding(propertyName, dataSource, dataMember, formattingEnabled, updateMode, nullValue, formatString, formatInfo);
Add(binding);
return binding;
}
///
///
/// Creates the binding and adds it to the collection. An InvalidBindingException is thrown
/// if this binding can't be constructed. An exception is thrown if a binding to the same target and Property as an existing binding or
/// if the binding's column isn't a valid column given this DataSource.Table's schema.
/// Fires the CollectionChangedEvent.
///
protected override void AddCore(Binding dataBinding) {
if (dataBinding == null)
throw new ArgumentNullException("dataBinding");
if (dataBinding.BindableComponent == control)
throw new ArgumentException(SR.GetString(SR.BindingsCollectionAdd1));
if (dataBinding.BindableComponent != null)
throw new ArgumentException(SR.GetString(SR.BindingsCollectionAdd2));
// important to set prop first for error checking.
dataBinding.SetBindableComponent(control);
base.AddCore(dataBinding);
}
// internalonly
internal void CheckDuplicates(Binding binding) {
if (binding.PropertyName.Length == 0) {
return;
}
for (int i = 0; i < Count; i++) {
if (binding != this[i] && this[i].PropertyName.Length > 0 &&
(String.Compare(binding.PropertyName, this[i].PropertyName, false, CultureInfo.InvariantCulture) == 0)) {
throw new ArgumentException(SR.GetString(SR.BindingsCollectionDup), "binding");
}
}
}
///
///
/// Clears the collection of any bindings.
/// Fires the CollectionChangedEvent.
///
public new void Clear() {
base.Clear();
}
// internalonly
///
///
/// [To be supplied.]
///
protected override void ClearCore() {
int numLinks = Count;
for (int i = 0; i < numLinks; i++) {
Binding dataBinding = this[i];
dataBinding.SetBindableComponent(null);
}
base.ClearCore();
}
///
///
///
public DataSourceUpdateMode DefaultDataSourceUpdateMode {
get {
return defaultDataSourceUpdateMode;
}
set {
defaultDataSourceUpdateMode = value;
}
}
///
///
/// Removes the given binding from the collection.
/// An ArgumentNullException is thrown if this binding is null. An ArgumentException is thrown
/// if this binding doesn't belong to this collection.
/// The CollectionChanged event is fired if it succeeds.
///
public new void Remove(Binding binding) {
base.Remove(binding);
}
///
///
/// Removes the given binding from the collection.
/// It throws an IndexOutOfRangeException if this doesn't have
/// a valid binding.
/// The CollectionChanged event is fired if it succeeds.
///
public new void RemoveAt(int index) {
base.RemoveAt(index);
}
///
///
/// [To be supplied.]
///
protected override void RemoveCore(Binding dataBinding) {
if (dataBinding.BindableComponent != control)
throw new ArgumentException(SR.GetString(SR.BindingsCollectionForeign));
dataBinding.SetBindableComponent(null);
base.RemoveCore(dataBinding);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Windows.Forms {
using System;
using Microsoft.Win32;
using System.Diagnostics;
using System.ComponentModel;
using System.Collections;
using System.Globalization;
///
///
///
/// Represents the collection of data bindings for a control.
///
[DefaultEvent("CollectionChanged"),
Editor("System.Drawing.Design.UITypeEditor, " + AssemblyRef.SystemDrawing, typeof(System.Drawing.Design.UITypeEditor)),
TypeConverterAttribute("System.Windows.Forms.Design.ControlBindingsConverter, " + AssemblyRef.SystemDesign),
]
public class ControlBindingsCollection : BindingsCollection {
internal IBindableComponent control;
private DataSourceUpdateMode defaultDataSourceUpdateMode = DataSourceUpdateMode.OnValidation;
///
public ControlBindingsCollection(IBindableComponent control) : base() {
Debug.Assert(control != null, "How could a controlbindingscollection not have a control associated with it!");
this.control = control;
}
///
///
/// [To be supplied.]
///
public IBindableComponent BindableComponent {
get {
return this.control;
}
}
///
///
/// [To be supplied.]
///
public Control Control {
get {
return this.control as Control;
}
}
///
///
/// [To be supplied.]
///
public Binding this[string propertyName] {
get {
foreach (Binding binding in this) {
if (String.Equals(binding.PropertyName, propertyName, StringComparison.OrdinalIgnoreCase))
{
return binding;
}
}
return null;
}
}
///
///
/// Adds the binding to the collection. An ArgumentNullException is thrown if this binding
/// is null. An exception is thrown if a binding to the same target and Property as an existing binding or
/// if the binding's column isn't a valid column given this DataSource.Table's schema.
/// Fires the CollectionChangedEvent.
///
public new void Add(Binding binding) {
base.Add(binding);
}
///
///
/// Creates the binding and adds it to the collection. An InvalidBindingException is thrown
/// if this binding can't be constructed. An exception is thrown if a binding to the same target and Property as an existing binding or
/// if the binding's column isn't a valid column given this DataSource.Table's schema.
/// Fires the CollectionChangedEvent.
///
public Binding Add(string propertyName, object dataSource, string dataMember) {
return Add(propertyName, dataSource, dataMember, false, this.DefaultDataSourceUpdateMode, null, String.Empty, null);
}
///
public Binding Add(string propertyName, object dataSource, string dataMember, bool formattingEnabled) {
return Add(propertyName, dataSource, dataMember, formattingEnabled, this.DefaultDataSourceUpdateMode, null, String.Empty, null);
}
///
public Binding Add(string propertyName, object dataSource, string dataMember, bool formattingEnabled, DataSourceUpdateMode updateMode) {
return Add(propertyName, dataSource, dataMember, formattingEnabled, updateMode, null, String.Empty, null);
}
///
public Binding Add(string propertyName, object dataSource, string dataMember, bool formattingEnabled, DataSourceUpdateMode updateMode, object nullValue) {
return Add(propertyName, dataSource, dataMember, formattingEnabled, updateMode, nullValue, String.Empty, null);
}
///
public Binding Add(string propertyName, object dataSource, string dataMember, bool formattingEnabled, DataSourceUpdateMode updateMode, object nullValue, string formatString) {
return Add(propertyName, dataSource, dataMember, formattingEnabled, updateMode, nullValue, formatString, null);
}
///
public Binding Add(string propertyName, object dataSource, string dataMember, bool formattingEnabled, DataSourceUpdateMode updateMode, object nullValue, string formatString, IFormatProvider formatInfo) {
if (dataSource == null)
throw new ArgumentNullException("dataSource");
Binding binding = new Binding(propertyName, dataSource, dataMember, formattingEnabled, updateMode, nullValue, formatString, formatInfo);
Add(binding);
return binding;
}
///
///
/// Creates the binding and adds it to the collection. An InvalidBindingException is thrown
/// if this binding can't be constructed. An exception is thrown if a binding to the same target and Property as an existing binding or
/// if the binding's column isn't a valid column given this DataSource.Table's schema.
/// Fires the CollectionChangedEvent.
///
protected override void AddCore(Binding dataBinding) {
if (dataBinding == null)
throw new ArgumentNullException("dataBinding");
if (dataBinding.BindableComponent == control)
throw new ArgumentException(SR.GetString(SR.BindingsCollectionAdd1));
if (dataBinding.BindableComponent != null)
throw new ArgumentException(SR.GetString(SR.BindingsCollectionAdd2));
// important to set prop first for error checking.
dataBinding.SetBindableComponent(control);
base.AddCore(dataBinding);
}
// internalonly
internal void CheckDuplicates(Binding binding) {
if (binding.PropertyName.Length == 0) {
return;
}
for (int i = 0; i < Count; i++) {
if (binding != this[i] && this[i].PropertyName.Length > 0 &&
(String.Compare(binding.PropertyName, this[i].PropertyName, false, CultureInfo.InvariantCulture) == 0)) {
throw new ArgumentException(SR.GetString(SR.BindingsCollectionDup), "binding");
}
}
}
///
///
/// Clears the collection of any bindings.
/// Fires the CollectionChangedEvent.
///
public new void Clear() {
base.Clear();
}
// internalonly
///
///
/// [To be supplied.]
///
protected override void ClearCore() {
int numLinks = Count;
for (int i = 0; i < numLinks; i++) {
Binding dataBinding = this[i];
dataBinding.SetBindableComponent(null);
}
base.ClearCore();
}
///
///
///
public DataSourceUpdateMode DefaultDataSourceUpdateMode {
get {
return defaultDataSourceUpdateMode;
}
set {
defaultDataSourceUpdateMode = value;
}
}
///
///
/// Removes the given binding from the collection.
/// An ArgumentNullException is thrown if this binding is null. An ArgumentException is thrown
/// if this binding doesn't belong to this collection.
/// The CollectionChanged event is fired if it succeeds.
///
public new void Remove(Binding binding) {
base.Remove(binding);
}
///
///
/// Removes the given binding from the collection.
/// It throws an IndexOutOfRangeException if this doesn't have
/// a valid binding.
/// The CollectionChanged event is fired if it succeeds.
///
public new void RemoveAt(int index) {
base.RemoveAt(index);
}
///
///
/// [To be supplied.]
///
protected override void RemoveCore(Binding dataBinding) {
if (dataBinding.BindableComponent != control)
throw new ArgumentException(SR.GetString(SR.BindingsCollectionForeign));
dataBinding.SetBindableComponent(null);
base.RemoveCore(dataBinding);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Debug.cs
- WindowInteropHelper.cs
- Win32PrintDialog.cs
- SqlDataSourceSelectingEventArgs.cs
- XmlILConstructAnalyzer.cs
- FontDriver.cs
- ZipPackage.cs
- WebConfigurationManager.cs
- FixUp.cs
- FontWeight.cs
- GraphicsState.cs
- NegatedCellConstant.cs
- ThemeDirectoryCompiler.cs
- TcpTransportSecurity.cs
- ITreeGenerator.cs
- SecureConversationSecurityTokenParameters.cs
- hwndwrapper.cs
- FixedSOMSemanticBox.cs
- IndexedGlyphRun.cs
- ProfileSettingsCollection.cs
- DataTableTypeConverter.cs
- StateMachineExecutionState.cs
- WebEventCodes.cs
- MarginsConverter.cs
- LabelAutomationPeer.cs
- IndependentAnimationStorage.cs
- Latin1Encoding.cs
- WizardStepBase.cs
- _NetRes.cs
- XsdBuilder.cs
- ColorIndependentAnimationStorage.cs
- XamlTreeBuilderBamlRecordWriter.cs
- BoundColumn.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- CommonBehaviorsSection.cs
- Win32Interop.cs
- WebZone.cs
- CdpEqualityComparer.cs
- ArrangedElementCollection.cs
- NumberFunctions.cs
- RegexBoyerMoore.cs
- ChtmlSelectionListAdapter.cs
- ConsoleKeyInfo.cs
- TransactionFlowOption.cs
- DefaultMemberAttribute.cs
- MouseWheelEventArgs.cs
- SettingsProviderCollection.cs
- BinarySerializer.cs
- UIElement.cs
- XmlSchemaType.cs
- BitmapPalettes.cs
- XmlILAnnotation.cs
- OleDbPropertySetGuid.cs
- ExpiredSecurityTokenException.cs
- WorkflowPersistenceContext.cs
- ReflectTypeDescriptionProvider.cs
- Menu.cs
- Base64WriteStateInfo.cs
- PropertyIDSet.cs
- EventHandlerList.cs
- ContentValidator.cs
- CodeSnippetTypeMember.cs
- AdapterDictionary.cs
- COM2IProvidePropertyBuilderHandler.cs
- WebPartPersonalization.cs
- HandledEventArgs.cs
- Soap.cs
- SqlDependency.cs
- ConnectionOrientedTransportBindingElement.cs
- HttpVersion.cs
- XmlDsigSep2000.cs
- CodePageEncoding.cs
- ScriptControl.cs
- DesignerView.Commands.cs
- ToolboxItemAttribute.cs
- SchemaObjectWriter.cs
- CreateUserWizard.cs
- SqlRowUpdatingEvent.cs
- ChannelTracker.cs
- GeneralTransform3DTo2DTo3D.cs
- RuntimeCompatibilityAttribute.cs
- AnnouncementSendsAsyncResult.cs
- PenContexts.cs
- KnownAssemblyEntry.cs
- GridViewRow.cs
- PaintValueEventArgs.cs
- BitmapEffectInputConnector.cs
- EventLogTraceListener.cs
- CatalogPart.cs
- XmlSchemaParticle.cs
- EncoderFallback.cs
- WhiteSpaceTrimStringConverter.cs
- ListItemParagraph.cs
- AddressingProperty.cs
- ThreadExceptionDialog.cs
- BrushValueSerializer.cs
- FixedPageStructure.cs
- WindowsUpDown.cs
- BaseCollection.cs
- thaishape.cs