private static void OnItemsSourceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            AdjustColumnMinWidthToFitTabsBehavior behavior = (AdjustColumnMinWidthToFitTabsBehavior)d;

            // Unhook event handlers
            behavior.unHookFromTabEvents();

            // Hook to events on new tabs
            if (behavior.TabControl != null)
            {
                behavior.hookToTabEvents(behavior.TabControl.Items);
            }

            // Calculate and apply column width
            behavior.adjustColumnMinWidth();
        }
        private static void OnTabControlChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            AdjustColumnMinWidthToFitTabsBehavior behavior = (AdjustColumnMinWidthToFitTabsBehavior)d;

            // Unhook from events on previous tab control's tabs
            behavior.unHookFromTabEvents();
            behavior.clearItemsSourceBinding();

            if (e.NewValue is TabControl)
            {
                TabControl tabControl = (TabControl)e.NewValue;

                // Wire up events
                behavior.hookToTabEvents(tabControl.Items);
                behavior.setItemsSourceBinding(tabControl);

                // Calculate and apply column width
                behavior.adjustColumnMinWidth();
            }
        }