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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值