1

コンテキストメニューのメニュー項目をビューモデルのコマンドにバインドできないようです。contextmenu がビジュアル ツリーに存在しないことはわかっています。テスト目的で、ボタンで同じコマンドを 2 回バインドしました。最初のバインディングは機能しますが、コンテキスト メニューで 2 番目のバインディングを取得してバインドできます。出力にバインド エラーが表示されます。誰かが何か考えがありますか?

<HierarchicalDataTemplate DataType="{x:Type inf:OSiteEquipment}" ItemsSource="{Binding Path=SubSystems, Converter={StaticResource subsystemConverter}}"  >
                <Button HorizontalContentAlignment="Left"
                        Command="{Binding DataContext.CommandOpenSelected, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"
                        CommandParameter="{Binding}">

                    <TextBlock Text="{Binding Path=PartData.Name}" TextTrimming="CharacterEllipsis" />
                    <Button.ContextMenu>
                        <ContextMenu>                                                                         

     <MenuItem Header="Add Category"  Command="{Binding Path=Parent.PlacementTarget.Tag.CommandOpenSelected, RelativeSource={RelativeSource AncestorType=ContextMenu}}" />
                        </ContextMenu>

                    </Button.ContextMenu>
                </Button>
            </HierarchicalDataTemplate>
4

2 に答える 2

0
  1. あなたはすでに相対的なソースを介して見つけます->パスのをParent省略しますParent
  2. ()->それぞれに設定TagしていませんPlacementTargetButton
于 2012-08-29T09:39:32.737 に答える
0

Databinding パスの「親」を削除するだけです。

<HierarchicalDataTemplate DataType="{x:Type inf:OSiteEquipment}" ItemsSource="{Binding Path=SubSystems, Converter={StaticResource subsystemConverter}}"  >
    <Button HorizontalContentAlignment="Left"
            Command="{Binding DataContext.CommandOpenSelected, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"
            CommandParameter="{Binding}">

        <TextBlock Text="{Binding Path=PartData.Name}" TextTrimming="CharacterEllipsis" />
        <Button.ContextMenu>
            <ContextMenu>
                <MenuItem Header="Add Category"  Command="{Binding Path=PlacementTarget.Command, RelativeSource={RelativeSource AncestorType=ContextMenu}}" />
            </ContextMenu>
        </Button.ContextMenu>
    </Button>
</HierarchicalDataTemplate>
于 2012-08-29T08:08:59.490 に答える