Пример #1
0
        protected override void AddCore(Binding dataBinding)
        {
            if (dataBinding == null)
            {
                throw new ArgumentNullException("dataBinding");
            }

            if (dataBinding.Control != null && dataBinding.BindableComponent != bindable_component)
            {
                throw new ArgumentException("dataBinding belongs to another BindingsCollection");
            }

            for (int i = 0; i < Count; i++)
            {
                Binding bnd = this [i];
                if (bnd == null || bnd.PropertyName.Length == 0 || dataBinding.PropertyName.Length == 0)
                {
                    continue;
                }

                if (String.Compare(bnd.PropertyName, dataBinding.PropertyName, true) == 0)
                {
                    throw new ArgumentException("The binding is already in the collection");
                }
            }

            dataBinding.SetControl(bindable_component);
            dataBinding.Check();
            base.AddCore(dataBinding);
        }
 /// <include file='doc\ControlBindingsCollection.uex' path='docs/doc[@for="ControlBindingsCollection.RemoveCore"]/*' />
 /// <devdoc>
 ///    <para>[To be supplied.]</para>
 /// </devdoc>
 protected override void RemoveCore(Binding dataBinding)
 {
     if (dataBinding.Control != control)
     {
         throw new ArgumentException(SR.GetString(SR.BindingsCollectionForeign));
     }
     dataBinding.SetControl(null);
     base.RemoveCore(dataBinding);
 }
        // internalonly
        /// <include file='doc\ControlBindingsCollection.uex' path='docs/doc[@for="ControlBindingsCollection.ClearCore"]/*' />
        /// <devdoc>
        ///    <para>[To be supplied.]</para>
        /// </devdoc>
        protected override void ClearCore()
        {
            int numLinks = Count;

            for (int i = 0; i < numLinks; i++)
            {
                Binding dataBinding = this[i];
                dataBinding.SetControl(null);
            }
            base.ClearCore();
        }
/*
 *      /// <include file='doc\ControlBindingsCollection.uex' path='docs/doc[@for="ControlBindingsCollection.Add2"]/*' />
 *      public Binding Add(string propertyName, object dataSource, int columnIndex) {
 *          Binding binding = new Binding(propertyName, dataSource, columnIndex);
 *          Add(binding);
 *          return binding;
 *      }
 */

        /// <include file='doc\ControlBindingsCollection.uex' path='docs/doc[@for="ControlBindingsCollection.AddCore"]/*' />
        /// <devdoc>
        /// 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.
        /// </devdoc>
        protected override void AddCore(Binding dataBinding)
        {
            if (dataBinding == null)
            {
                throw new ArgumentNullException("dataBinding");
            }
            if (dataBinding.Control == control)
            {
                throw new ArgumentException(SR.GetString(SR.BindingsCollectionAdd1));
            }
            if (dataBinding.Control != null)
            {
                throw new ArgumentException(SR.GetString(SR.BindingsCollectionAdd2));
            }

            // important to set prop first for error checking.
            dataBinding.SetControl(control);

            base.AddCore(dataBinding);
        }
		protected override void AddCore (Binding dataBinding)
		{
			if (dataBinding == null)
				throw new ArgumentNullException ("dataBinding");

#if NET_2_0
			if (dataBinding.Control != null && dataBinding.BindableComponent != bindable_component)
#else
			if (dataBinding.Control != null && dataBinding.Control != control)
#endif
				throw new ArgumentException ("dataBinding belongs to another BindingsCollection");

			for (int i = 0; i < Count; i++) {
				Binding bnd = this [i];
				if (bnd == null || bnd.PropertyName.Length == 0 || dataBinding.PropertyName.Length == 0) {
					continue;
				}

				if (String.Compare (bnd.PropertyName, dataBinding.PropertyName, true) == 0) {
					throw new ArgumentException ("The binding is already in the collection");
				}
			}

#if NET_2_0
			dataBinding.SetControl (bindable_component);
#else
			dataBinding.SetControl (control);
#endif
			dataBinding.Check ();
			base.AddCore (dataBinding);
		}