2012-05-02 21 views
5

Ich habe das folgende Xaml, das in einem Benutzersteuerelement verwendet wird, das als Editor in einem Eigenschaftenraster verwendet. Die Frage ist, wie würde das C# aussehen, um ein Verhalten aus dem Code zu erstellen?Attach Verhalten in Code hinter

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

Da diese auf einem Editor ist, der dynamisch in einem Property geladen wird, war ich gerade dabei, eine Instanz des Editors zu erstellen mit von Code Bindung hinter anstatt mit unterschiedlichen XAML-Dateien zu haben, die wirklich kurz sind und enthält nur einen Editor.

Oder wäre es einfacher, einfach den gesamten Code, der im Behaviour ist, wieder zu implementieren und ihn aufzurufen, während ich den Editor im Code hinterlasse?

+0

Ist Verhalten nicht nur eine ItemCollection? Wenn ja, benutze einfach myInteraction.Behaviors.Add (new XamComboEditorSelectedItemsBehavior {// setze Requisiten}); – phixed

Antwort

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

Ich habe keine SetBinding-Methode direkt auf das Verhalten gefunden. Stattdessen musste ich BindingOperations.SetBinding() verwenden – SwissCoder