2012-05-02 13 views
5

Ho il seguente Xaml utilizzato in un controllo utente utilizzato come editor all'interno di una griglia di proprietà. La domanda è, come apparirebbe il C# per attaccare un comportamento dal codice?Collegare il comportamento nel codice dietro

<i:Interaction.Behaviors> 
    <igExt:XamComboEditorSelectedItemsBehavior SelectedItems="{Binding SelectedItems, ElementName=_uc}"/> 
</i:Interaction.Behaviors> 

Dal momento che questo è in un editor che viene caricato in modo dinamico in un PropertyGrid, stavo andando a creare un'istanza l'editor con il grippaggio dal codice dietro piuttosto che dover avere diversi file XAML che sono veramente brevi e basta contenere un editor.

Oppure sarebbe più semplice implementare semplicemente tutto il codice presente nel comportamento e chiamarlo mentre sto creando l'editor nel codice sottostante?

+0

Non si tratta solo di un ItemCollection? Se è così, usa myInteraction.Behaviors.Add (new XamComboEditorSelectedItemsBehavior {// set props}); – phixed

risposta

16
XamComboEditorSelectedItemsBehavior behavior = new XamComboEditorSelectedItemsBehavior(); 
behavior.SetBinding(XamComboEditorSelectedItemsBehavior.SelectedItemsProperty, new Binding() 
    { 
     ElementName = "_uc", 
     Path = new PropertyPath("SelectedItems"), 
     Mode = BindingMode.TwoWay 
    }); 
Interaction.GetBehaviors(yourElementName).Add(behavior) 
+4

Non ho trovato alcun metodo SetBinding direttamente sul comportamento. Invece ho dovuto usare BindingOperations.SetBinding() – SwissCoder

Problemi correlati