Command参数不会绑定到StackPanel?

时间:2011-07-19 05:34:06

标签: .net wpf xaml .net-4.0 binding

我正在尝试创建一个简单的TreeView,它将代表我的应用程序数据目录,但是我发现在尝试实现文件夹重命名选项时,我无法将上下文菜单上的命令参数绑定到StackPanel。

代码:

<Grid>
    <Label Content="{Binding Path=FolderName}">
        <Label.ContextMenu>
        <ContextMenu>
            <MenuItem Header="Rename Folder" Command="{Binding Path=ToggleControlVisability}" CommandParameter="{Binding ElementName=FolderNameEditor}"></MenuItem>
            <MenuItem Header="Delete Folder" Command="{Binding Path=DeleteFolder}" CommandParameter="{Binding Path=FolderInformation}"></MenuItem>
        </ContextMenu>
        </Label.ContextMenu>
    </Label>

    <StackPanel Name="FolderNameEditor" Orientation="Horizontal" Visibility="Hidden">
        <TextBox Name="EditFolderName" Text="{Binding Path=FolderName}"></TextBox>
        <Button Content="Ok" Command="{Binding Path=ToggleControlVisability}" CommandParameter="{Binding ElementName=EditFolderName}"></Button>
    </StackPanel>
</Grid>

问题似乎是层次结构,是否有某种方法可以使用相对源将重命名文件夹菜单项命令参数绑定到包含编辑器元素的堆栈面板?

谢谢,

亚历。

1 个答案:

答案 0 :(得分:1)

MenuItems不是可视化树的一部分,因此您必须向命令侦听器(或任何后代)添加显式“CommandTarget”绑定。