WPF在代码中动态设置CommandParameter上的绑定

时间:2013-02-19 14:17:41

标签: c# wpf dynamic binding commandparameter

我需要动态创建一些TreeViewItems,每个TreeViewItems都需要一个Command绑定到DoubleClick Mouse Action。问题是我想将一个参数传递给这个命令,但我不知道该怎么做。

目前代码:

    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}"

如何在代码中动态设置?

1 个答案:

答案 0 :(得分:3)

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

https://msdn.microsoft.com/it-it/library/system.windows.input.inputbinding.commandparameterproperty(v=vs.100).aspx