2012-05-02 23 views
5

Tengo el siguiente Xaml que se utiliza en un control de usuario que se utiliza como editor dentro de una cuadrícula de propiedades. La pregunta es, ¿cómo se vería la C# para adjuntar un comportamiento del código?Adjuntar comportamiento en código detrás de

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

Dado que se trata de un editor que se carga dinámicamente en un PropertyGrid, sólo iba a crear una instancia del editor con la unión de código subyacente en lugar de tener que disponer de diferentes archivos XAML que son realmente corto y solo contiene un editor

¿O sería más fácil simplemente re implementar todo el código que está en el Comportamiento y llamarlo mientras estoy creando el editor en el código?

+0

¿No son los comportamientos simplemente un ItemCollection? Si es así, simplemente use myInteraction.Behaviors.Add (new XamComboEditorSelectedItemsBehavior {// set props}); – phixed

Respuesta

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

No encontré ningún método SetBinding directamente en el comportamiento. En cambio, tuve que usar BindingOperations.SetBinding() – SwissCoder

Cuestiones relacionadas