2012-05-02 28 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 {//一套道具}); – 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