System.Windows.Controls.ItemsControlHelper.PrepareContainerForItemOverride C# (CSharp) Method

PrepareContainerForItemOverride() private method

private PrepareContainerForItemOverride ( DependencyObject element, System.Windows.Style parentItemContainerStyle ) : void
element System.Windows.DependencyObject
parentItemContainerStyle System.Windows.Style
return void
        internal static void PrepareContainerForItemOverride(DependencyObject element, Style parentItemContainerStyle)
        {
            // Apply the ItemContainerStyle to the item
            Control control = element as Control;
            if (parentItemContainerStyle != null && control != null && control.Style == null)
            {
                control.SetValue(Control.StyleProperty, parentItemContainerStyle);
            }

            // Note: WPF also does preparation for ContentPresenter,
            // ContentControl, HeaderedContentControl, and ItemsControl.  Since
            // we don't have any other ItemsControls using this
            // ItemContainerGenerator, we've removed that code for now.  It
            // should be added back later when necessary.
        }

Usage Example

        /// <summary>
        /// Prepares the container element to display the specified item.
        /// </summary>
        /// <param name="element">
        /// The container element used to display the specified item.
        /// </param>
        /// <param name="item">The item to display.</param>
        protected override void PrepareContainerForItemOverride(DependencyObject element, object item)
        {
            TreeViewItem node = element as TreeViewItem;

            if (node != null)
            {
                // Associate the Parent ItemsControl
                node.ParentItemsControl = this;
            }

            ItemsControlHelper.PrepareContainerForItemOverride(element, ItemContainerStyle);
            HeaderedItemsControl.PreparePrepareHeaderedItemsControlContainerForItemOverride(element, item, this, ItemContainerStyle);
            base.PrepareContainerForItemOverride(element, item);
        }