WPF / Silverlight: как создать коллекцию BehaviorCollection для элемента управления, у которого его еще нет? - PullRequest
4 голосов
/ 08 февраля 2011

Как мне создать BehaviorCollection для элемента управления, у которого его еще нет?

1 Ответ

5 голосов
/ 08 февраля 2011

API для этого не так очевиден, для выполнения в коде используйте следующее:

var behaviorCollection = System.Windows.Interactivity.Interaction
                                          .GetBehaviors(controlToAddBehaviorTo);
behaviorCollection.Add(new MyBehavior());

, где, очевидно, controlToAddBehaviorTo - это «элемент управления, у которого его еще нет».

За то же самое в xaml:

<TextBox x:Name="controlToAddBehaviorTo">
    <i:Interaction.Behaviors>
        <local:MyBehavior/>
    </i:Interaction.Behaviors>
</TextBox>

с импортом для пространства имен интерактивности xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"

...