0

私は使用していて、右クリックしたときにMVVMa を呼び出したいと思います。多くの検索を行いましたが、問題は解決しません。CommandListView

このXAMLコードを使用します

<ListView ItemsSource="{Binding LibraryList}"
          x:Name="MediaList" 
          Visibility="{Binding MediaListVisibility}"
          Margin="149,18,-1,0"
          BorderBrush="#FF8BCD7F"
          BorderThickness="0"
          Background="White">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="MouseDoubleClick">
            <i:InvokeCommandAction Command="{Binding ChooseMediaCommand}"
                CommandParameter="{Binding SelectedValue, ElementName=MediaList}"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>
    <ListView.View>
        <GridView>
            <GridViewColumn DisplayMemberBinding="{Binding Name}" Header="Name" Width="300" />
            <GridViewColumn DisplayMemberBinding="{Binding Time}" Header="Time" Width="70" />
            <GridViewColumn DisplayMemberBinding="{Binding Artist}" Header="Artist" Width="120" />
            <GridViewColumn DisplayMemberBinding="{Binding Album}" Header="Album" Width="120" />
            <GridViewColumn DisplayMemberBinding="{Binding Year}" Header="Year" Width="80" />
        </GridView>
    </ListView.View> 
    <ListView.ContextMenu>
        <ContextMenu>
            <MenuItem Header="Add to playlist" ItemsSource="{Binding PlaylistsList}">
                <MenuItem.ItemTemplate>
                    <DataTemplate>
                        <MenuItem Header="{Binding Name}"
                                  Command="{Binding AddToPlaylistCommand}"
                                  CommandParameter="{Binding Name}"/>
                    </DataTemplate>
                </MenuItem.ItemTemplate>
            </MenuItem>
            <MenuItem Header="Remove"/>
        </ContextMenu>
    </ListView.ContextMenu>

エラーメッセージ :

System.Windows.Data エラー: 40: BindingExpression パス エラー: 'AddToPlaylistCommand' プロパティが 'object' ''Playlist' (HashCode=16901761)' に見つかりません。BindingExpression:Path=AddToPlaylistCommand; DataItem='プレイリスト' (HashCode=16901761); ターゲット要素は 'MenuItem' (Name='') です。ターゲット プロパティは 'Command' (タイプ 'ICommand') です。

4

3 に答える 3

3

このような相対ソースを使用します(コントロールがウィンドウであると仮定します)

Command="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}, Path=AddToPlaylistCommand}"
于 2013-04-03T13:13:14.967 に答える
2
Command="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}, Path=DataContext.AddToPlaylistCommand}"
于 2013-04-03T13:26:07.150 に答える
0
Command="{Binding Path=DataContext.AddToPlaylistCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}"
于 2013-04-03T13:25:47.240 に答える