我需要动态创建一些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}"
如何在代码中动态设置?
答案 0 :(得分:3)
解开了谜团!
我真的不知道为什么,但是自.NET Framework 4.0起,InputBinding.CommandParameterProperty才可用。我正在使用3.0,所以我无法在代码中绑定CommandParameter
如果有人知道如何绕过这个,那将非常有帮助。