MahApps.Metro.Behaviours.StylizedBehaviors.GetIndexOf C# (CSharp) 메소드

GetIndexOf() 개인적인 정적인 메소드

private static GetIndexOf ( BehaviorCollection itemBehaviors, Behavior behavior ) : int
itemBehaviors BehaviorCollection
behavior System.Windows.Interactivity.Behavior
리턴 int
        private static int GetIndexOf(BehaviorCollection itemBehaviors, Behavior behavior)
        {
            int index = -1;

            Behavior orignalBehavior = GetOriginalBehavior(behavior);

            for (int i = 0; i < itemBehaviors.Count; i++)
            {
                Behavior currentBehavior = itemBehaviors[i];
                if (currentBehavior == behavior || currentBehavior == orignalBehavior)
                {
                    index = i;
                    break;
                }

                Behavior currentOrignalBehavior = GetOriginalBehavior(currentBehavior);
                if (currentOrignalBehavior == behavior || currentOrignalBehavior == orignalBehavior)
                {
                    index = i;
                    break;
                }
            }

            return index;
        }

Usage Example

예제 #1
0
        private static void OnPropertyChanged(DependencyObject dpo, DependencyPropertyChangedEventArgs e)
        {
            UIElement uIElement = dpo as UIElement;

            if (uIElement == null)
            {
                return;
            }
            BehaviorCollection         behaviors = Interaction.GetBehaviors(uIElement);
            StylizedBehaviorCollection newValue  = e.NewValue as StylizedBehaviorCollection;
            StylizedBehaviorCollection oldValue  = e.OldValue as StylizedBehaviorCollection;

            if (newValue == oldValue)
            {
                return;
            }
            if (oldValue != null)
            {
                foreach (Behavior behavior in oldValue)
                {
                    int indexOf = StylizedBehaviors.GetIndexOf(behaviors, behavior);
                    if (indexOf < 0)
                    {
                        continue;
                    }
                    behaviors.RemoveAt(indexOf);
                }
            }
            if (newValue != null)
            {
                foreach (Behavior behavior1 in newValue)
                {
                    if (StylizedBehaviors.GetIndexOf(behaviors, behavior1) >= 0)
                    {
                        continue;
                    }
                    Behavior behavior2 = (Behavior)behavior1.Clone();
                    StylizedBehaviors.SetOriginalBehavior(behavior2, behavior1);
                    behaviors.Add(behavior2);
                }
            }
        }