BindingWorker.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / MS / Internal / Data / BindingWorker.cs / 3 / BindingWorker.cs

                            //---------------------------------------------------------------------------- 
//
// 
//    Copyright (C) Microsoft Corporation.  All rights reserved.
//  
//
// Description: Defines BindingWorker base class. 
// 
//---------------------------------------------------------------------------
 
using System;
using System.Reflection;
using System.ComponentModel;
 
using System.Windows;
using System.Windows.Controls; 
using System.Windows.Data; 
using System.Windows.Threading;
 

namespace MS.Internal.Data
{
 
    // Base class for binding workers.
    // Derived classes implement binding functionality depending on the 
    // type of source, e.g.  ClrBindingWorker, XmlBindingWorker 
    internal abstract class BindingWorker
    { 
        //-----------------------------------------------------
        //
        //  Constructors
        // 
        //-----------------------------------------------------
 
        protected BindingWorker(BindingExpression b) 
        {
            _bindingExpression = b; 
        }

        //------------------------------------------------------
        // 
        //  Internal properties - used by parent BindingExpression
        // 
        //----------------------------------------------------- 

        internal virtual Type           SourcePropertyType      { get { return null; } } 
        internal virtual bool           CanUpdate               { get { return false; } }
        internal BindingExpression      ParentBindingExpression { get { return _bindingExpression; } }
        internal Type                   TargetPropertyType      { get { return TargetProperty.PropertyType; } }
        internal virtual bool           IsDBNullValidForUpdate  { get { return false; } } 

        //------------------------------------------------------ 
        // 
        //  Internal methods - used by parent BindingExpression
        // 
        //------------------------------------------------------

        internal virtual void           AttachDataItem()        {}
        internal virtual void           DetachDataItem()        {} 
        internal virtual void           OnCurrentChanged(ICollectionView collectionView, EventArgs args) {}
        internal virtual object         RawValue()              { return null; } 
        internal virtual void           UpdateValue(object value) {} 
        internal virtual void           RefreshValue()          {}
        internal virtual bool           UsesDependencyProperty(DependencyObject d, DependencyProperty dp) { return false; } 
        internal virtual void           OnSourceInvalidation(DependencyObject d, DependencyProperty dp, bool isASubPropertyChange) {}
        internal virtual ValidationError ValidateDataError(BindingExpressionBase bindingExpressionBase) { return null; }

        //----------------------------------------------------- 
        //
        //  Protected Properties 
        // 
        //------------------------------------------------------
 
        protected Binding      ParentBinding          { get { return ParentBindingExpression.ParentBinding; } }

        protected bool      IsDynamic           { get { return ParentBindingExpression.IsDynamic; } }
        internal  bool      IsReflective        { get { return ParentBindingExpression.IsReflective; } } 
        protected bool      IgnoreSourcePropertyChange { get { return ParentBindingExpression.IgnoreSourcePropertyChange; } }
        protected object    DataItem            { get { return ParentBindingExpression.DataItem; } } 
        protected DependencyObject TargetElement { get { return ParentBindingExpression.TargetElement; } } 
        protected DependencyProperty TargetProperty { get { return ParentBindingExpression.TargetProperty; } }
        protected DataBindEngine Engine         { get { return ParentBindingExpression.Engine; } } 
        protected Dispatcher Dispatcher         { get { return ParentBindingExpression.Dispatcher; } }

        protected BindingStatus Status
        { 
            get { return ParentBindingExpression.Status; }
            set { ParentBindingExpression.SetStatus(value); } 
        } 

        //----------------------------------------------------- 
        //
        //  Protected Methods
        //
        //----------------------------------------------------- 

        protected void SetTransferIsPending(bool value) 
        { 
            ParentBindingExpression.IsTransferPending = value;
        } 

        //-----------------------------------------------------
        //
        //  Private Fields 
        //
        //------------------------------------------------------ 
 
        BindingExpression _bindingExpression;
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK