2012-05-02 2 views
5

У меня есть следующий Xaml, который используется в пользовательском элементе управления, который используется в качестве редактора внутри сетки свойств. Вопрос в том, что бы C# выглядело так, чтобы прикрепить поведение от кода?Приложить поведение в коде за

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

Поскольку это на редактор, который загружается динамически в PropertyGrid, я просто хочу, чтобы создать экземпляр редактора с креплениями из кода позади, вместо того, чтобы иметь различные файлы XAML, которые действительно короткие и просто используйте один редактор.

Или было бы проще просто реализовать весь код, который находится в Поведении, и вызвать его, пока я создаю редактор в коде?

+0

Это не поведение, просто ItemCollection? Если это так, просто используйте myInteraction.Behaviors.Add (новый XamComboEditorSelectedItemsBehavior {// set props}); – phixed

ответ

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

Я не нашел метод SetBinding непосредственно в поведении. Вместо этого мне пришлось использовать BindingOperations.SetBinding() – SwissCoder