ViewBase.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Framework / System / Windows / Controls / ViewBase.cs / 1 / ViewBase.cs

                            //---------------------------------------------------------------------------- 
//
// Copyright (C) Microsoft Corporation.  All rights reserved.
//
//--------------------------------------------------------------------------- 

 
using System.Diagnostics;       // Debug 
using System.Windows.Automation.Peers;     // IViewAutomationPeer
 

namespace System.Windows.Controls
{
    ///  
    /// ViewBase is something that tells the ListView the way to present each
    /// entity in the data collection, i.e. the default style key. 
    ///  

    public abstract class ViewBase : DependencyObject 
    {
        #region Protected Methods

        ///  
        /// called when ListView is prepare container for item
        ///  
        /// the container 
        protected internal virtual void PrepareItem(ListViewItem item)
        { 
        }

        /// 
        /// called when ListView is clear container for item 
        /// 
        /// the container 
        protected internal virtual void ClearItem(ListViewItem item) 
        {
        } 

        /// 
        /// default style key.
        /// ListView will degrate to ListBox if sub-class doesn't override 
        /// this value.
        ///  
        protected internal virtual object DefaultStyleKey 
        {
            get { return typeof(ListBox); } 
        }

        /// 
        /// default container style key 
        /// The container, ListViewItem, will degrate to ListBoxItem if
        /// sub-class doesn't override this value. 
        ///  
        protected internal virtual object ItemContainerDefaultStyleKey
        { 
            get { return typeof(ListBoxItem); }
        }

        // Propagate theme changes to contained headers 
        internal virtual void OnThemeChanged()
        { 
        } 

        #endregion 

        #region InheritanceContext

        ///  
        ///     InheritanceContext
        ///  
        internal override DependencyObject InheritanceContext 
        {
            get { return _inheritanceContext; } 
        }

        // Receive a new inheritance context
        internal override void AddInheritanceContext(DependencyObject context, DependencyProperty property) 
        {
            if (_inheritanceContext != context) 
            { 
                // Pick up the new context
                _inheritanceContext = context; 
                OnInheritanceContextChanged(EventArgs.Empty);
            }
        }
 
        // Remove an inheritance context
        internal override void RemoveInheritanceContext(DependencyObject context, DependencyProperty property) 
        { 
            if (_inheritanceContext == context)
            { 
                // clear the context
                _inheritanceContext = null;
                OnInheritanceContextChanged(EventArgs.Empty);
            } 
        }
 
        // Fields to implement DO's inheritance context 
        DependencyObject _inheritanceContext;
 
        #endregion InheritanceContext

        /// 
        /// called when ListView creates its Automation peer 
        /// 
        /// listview reference 
        /// IViewAutomationPeer 
        /// ListView will use this method to get an automationPeer for a given view
        /// and default to the properties/patterns implemented by the view before going to 
        /// default fall-backs on ListView.
        internal protected virtual IViewAutomationPeer GetAutomationPeer(ListView parent)
        {
            return null; 
        }
 
        // True, when view is assigned to a ListView. 
        internal bool IsUsed
        { 
            get { return _isUsed; }
            set { _isUsed = value; }
        }
 
        private bool _isUsed;
    } 
} 

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

 
using System.Diagnostics;       // Debug 
using System.Windows.Automation.Peers;     // IViewAutomationPeer
 

namespace System.Windows.Controls
{
    ///  
    /// ViewBase is something that tells the ListView the way to present each
    /// entity in the data collection, i.e. the default style key. 
    ///  

    public abstract class ViewBase : DependencyObject 
    {
        #region Protected Methods

        ///  
        /// called when ListView is prepare container for item
        ///  
        /// the container 
        protected internal virtual void PrepareItem(ListViewItem item)
        { 
        }

        /// 
        /// called when ListView is clear container for item 
        /// 
        /// the container 
        protected internal virtual void ClearItem(ListViewItem item) 
        {
        } 

        /// 
        /// default style key.
        /// ListView will degrate to ListBox if sub-class doesn't override 
        /// this value.
        ///  
        protected internal virtual object DefaultStyleKey 
        {
            get { return typeof(ListBox); } 
        }

        /// 
        /// default container style key 
        /// The container, ListViewItem, will degrate to ListBoxItem if
        /// sub-class doesn't override this value. 
        ///  
        protected internal virtual object ItemContainerDefaultStyleKey
        { 
            get { return typeof(ListBoxItem); }
        }

        // Propagate theme changes to contained headers 
        internal virtual void OnThemeChanged()
        { 
        } 

        #endregion 

        #region InheritanceContext

        ///  
        ///     InheritanceContext
        ///  
        internal override DependencyObject InheritanceContext 
        {
            get { return _inheritanceContext; } 
        }

        // Receive a new inheritance context
        internal override void AddInheritanceContext(DependencyObject context, DependencyProperty property) 
        {
            if (_inheritanceContext != context) 
            { 
                // Pick up the new context
                _inheritanceContext = context; 
                OnInheritanceContextChanged(EventArgs.Empty);
            }
        }
 
        // Remove an inheritance context
        internal override void RemoveInheritanceContext(DependencyObject context, DependencyProperty property) 
        { 
            if (_inheritanceContext == context)
            { 
                // clear the context
                _inheritanceContext = null;
                OnInheritanceContextChanged(EventArgs.Empty);
            } 
        }
 
        // Fields to implement DO's inheritance context 
        DependencyObject _inheritanceContext;
 
        #endregion InheritanceContext

        /// 
        /// called when ListView creates its Automation peer 
        /// 
        /// listview reference 
        /// IViewAutomationPeer 
        /// ListView will use this method to get an automationPeer for a given view
        /// and default to the properties/patterns implemented by the view before going to 
        /// default fall-backs on ListView.
        internal protected virtual IViewAutomationPeer GetAutomationPeer(ListView parent)
        {
            return null; 
        }
 
        // True, when view is assigned to a ListView. 
        internal bool IsUsed
        { 
            get { return _isUsed; }
            set { _isUsed = value; }
        }
 
        private bool _isUsed;
    } 
} 

// 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