2013-02-19 76 views
3

我需要动态创建一些TreeViewItems,它们每个都需要有一个Command绑定到DoubleClick Mouse Action。问题是我想传递一个参数给这个Command,但我不知道该怎么做。WPF在CommandParameter上动态设置绑定代码

目前代码:

private void AddExecuted(object sender, ExecutedRoutedEventArgs e) 
    { 
     MyTreeViewItem T = new MyTreeViewItem(); 

     InputBinding IB = new InputBinding(RenameCommand, new MouseGesture(MouseAction.LeftDoubleClick)); 
     Binding B = new Binding("SelectedItem"); 
     B.Source = MainTV; 

     //BindingOperations.SetBinding(IB, IB.CommandParameterProperty /*CommandParameterProperty does not exist*/, B); 

     T.InputBindings.Add(IB); 

     MainTV.Items.Add(T);    

     e.Handled = true; 
    } 

我通常在XAML以这种方式设置:

CommandParameter="{Binding Path=SelectedItem, ElementName=MainTV}" 

如何动态地在代码中设置?

回答

2

解开了这个谜!
我真的不知道为什么,但InputBinding.CommandParameterProperty仅在.NET Framework 4.0以后才可用。我正在使用3.0,所以我无法在代码中绑定CommandParameter。
如果有人知道如何绕过这一点,这将是非常有益的。

http://bit.ly/12Lb47v