Параметр команды не будет привязан к StackPanel? - PullRequest
0 голосов
/ 19 июля 2011

Я пытаюсь создать простой 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 Ответ

1 голос
/ 19 июля 2011

MenuItems не являются частью визуального дерева, поэтому вы должны добавить явную привязку «CommandTarget» к слушателю команды (или любому потомку).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...