Пример #1
0
        /// <summary>
        /// Additional actions to be taken on connecting DataSource
        /// </summary>
        /// <param name="aTarget">
        /// Target object <see cref="System.Object"/>
        /// </param>
        /// <remarks>
        /// Connect all the messaging derived adaptors need here
        /// </remarks>
        internal override void OnDataSourceConnect(object aTarget)
        {
            base.OnDataSourceConnect(aTarget);
            if (aTarget == null)
            {
                return;
            }
            if (aTarget is IListEvents)
            {
                IListEvents list = (aTarget as IListEvents);
                list.ListChanged    += OnListChanged;
                list.ElementAdded   += OnElementAdded;
                list.ElementChanged += OnElementChanged;
                list.ElementRemoved += OnElementRemoved;
                list.ElementsSorted += OnElementsSorted;
                list = null;
            }
            else if (aTarget is IBindingList)
            {
                Console.WriteLine("DataSourceConnect to IBindingList");
                (aTarget as IBindingList).ListChanged += IBindingListChangedHandler;
            }
//			else if (aTarget is System.Data.DataTable) {
//				Console.WriteLine ("DataSourceConnect to DataTable");
//			}
//			else
//				Console.WriteLine ("DataSourceConnect (Target=" + aTarget + ")");
        }
Пример #2
0
        /// <summary>
        /// Additional actions to be taken on disconnecting DataSource
        /// </summary>
        /// <param name="aTarget">
        /// Target object <see cref="System.Object"/>
        /// </param>
        /// <remarks>
        /// Disconnect all the messaging derived adaptors need here
        /// </remarks>
        internal override void OnDataSourceDisconnect(object aTarget)
        {
            base.OnDataSourceDisconnect(aTarget);
            if (aTarget == null)
            {
                return;
            }
            if (aTarget is IListEvents)
            {
                IListEvents list = (aTarget as IListEvents);
                // No need to connect OnListChanged when taking the Adaptor DataSource
                // Should be used from different approach forms from software
                list.ListChanged    -= OnListChanged;
                list.ElementAdded   -= OnElementAdded;
                list.ElementChanged -= OnElementChanged;
                list.ElementRemoved -= OnElementRemoved;
                list.ElementsSorted -= OnElementsSorted;
                list = null;
            }
            else if (aTarget is IBindingList)
            {
//				Console.WriteLine ("DataSourceDisconnect from IBindingList");
                (aTarget as IBindingList).ListChanged -= IBindingListChangedHandler;
            }
            else if (aTarget is System.Data.DataTable)
            {
//				Console.WriteLine ("DataSourceDisconnect from DataTable");
                (aTarget as DataTable).RowDeleted += delegate(object sender, DataRowChangeEventArgs e) {
                };
            }
//			else if (aTarget is System.Data.DataTable) {
//				Console.WriteLine ("DataSourceDisconnect to DataTable");
//			}
//			else
//				Console.WriteLine ("DataSourceDisconnect (Target=" + aTarget + ")");
        }