WPF中listview控件绑定右键菜单命令

在MvvM模式中,需要为listview控件绑定右键菜单命令,实现右键菜单,触发Command命令,并传递选中的所在项。

            <ListView.View>
                <GridView >
                    <GridViewColumn Header="时间" Width="160" DisplayMemberBinding="{Binding Path=Name}" ></GridViewColumn>
                    <GridViewColumn Header="播放文件" Width="160" DisplayMemberBinding="{Binding Path=Number}" ></GridViewColumn>
                    <GridViewColumn Header="次数" Width="160" DisplayMemberBinding="{Binding Path=Remark}" ></GridViewColumn>
                </GridView>
            </ListView.View>
            <ListView.ContextMenu>
                <ContextMenu Width="100">
                    <MenuItem Header="详情" Command="{Binding DetailsAcountCmd}" CommandParameter="{Binding ElementName=listView,Path=SelectedItem}" Width="100">
                    </MenuItem>
                    <MenuItem Header="编辑" Command="{Binding EditAcountCmd}" CommandParameter="{Binding ElementName=listView,Path=SelectedItem}" Width="100">
                    </MenuItem>
                    <MenuItem Header="删除" Command="{Binding DeleteAcountCmd}" CommandParameter="{Binding ElementName=listView,Path=SelectedItem}" Width="100">
                    </MenuItem>
                </ContextMenu>
            </ListView.ContextMenu>

但这样会有问题,实际参数并不能传递过去,但我们也发现,通过Menu的Click事件是可以传递过去的,那么可以肯定,就是传递的方式有问题,这里具体方式如下

CommandParameter="{Binding PlacementTarget.SelectedIndex,RelativeSource={RelativeSource AncestorType=ContextMenu}}"

查看效果的话,请下载处理演示Demo示例Demo

发布了120 篇原创文章 · 获赞 50 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/u014650759/article/details/103722164