3

我需要动态创建一些 TreeViewItem,它们中的每一个都需要有一个绑定到 DoubleClick 鼠标操作的命令。问题是我想向这个命令传递一个参数,但我不知道该怎么做。

当前代码:

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

如何在代码中动态设置?

4

1 回答 1

3

解开谜团!
我真的不知道为什么,但 InputBinding.CommandParameterProperty 仅从 .NET 框架 4.0 开始可用。我正在使用 3.0,所以我无法在代码中绑定 CommandParameter。
如果有人知道如何绕过它,那将非常有帮助。

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

于 2013-02-20T08:30:30.203 回答