出现的问题

xaml代码:

    <Window.DataContext><vm:MainWindowViewModel/></Window.DataContext><ListView x:Name="ImageList" Grid.Column="0" Grid.Row="1"     MinHeight="470"ItemsSource="{Binding Images}" SelectedItem="{Binding SelectedImage, Mode=OneWayToSource}" Margin="0,27,0,-16.667" Height="470" Grid.RowSpan="2" VerticalAlignment="Top" Background="#FFF0F0F0" ><ListView.ItemTemplate ><DataTemplate ><Border BorderThickness="1" BorderBrush="AliceBlue"><Image Width="{Binding ActualWidth, ElementName=textBlock, Mode=OneWay}" Source="{Binding}" Stretch="UniformToFill"><Image.ContextMenu><ContextMenu><MenuItem Header="删除" Command="{Binding DeleteCommand}"/></ContextMenu></Image.ContextMenu></Image></Border></DataTemplate></ListView.ItemTemplate></ListView>

部分ViewModel代码:

        private BitmapImage _selectedImage;private BitmapImage _image;private ObservableCollection<BitmapImage> _images;public BitmapImage Image{get{return _image;}set{_image = value;base.OnPropertyChanged("Image");}}public ObservableCollection<BitmapImage> Images{get{return _images;}set{_images = value;base.OnPropertyChanged("Images");}}public BitmapImage SelectedImage{get{return _selectedImage;}set{_selectedImage = value;base.OnPropertyChanged("SelectedImage");}}public ICommand DeleteCommand{get{if (_deleteCommand == null){_deleteCommand = new RelayCommand(param => this.DeleteFile());}return _deleteCommand;}}private void DeleteFile(){_images.Remove(_selectedImage);base.OnPropertyChanged("Images");}

问题说明:将ListView的suorce设置为Images,将图片显示在列表中,想要给显示的图片添加一个ContextMenu,使右击图片时,执行删除命令,移除这一张图片,但是上述的方法没反应。

解决方法:

https://stackoverflow.com/questions/25205640/wpf-binding-command-to-contextmenu

 <Image  Tag="{Binding DataContext,ElementName=ImageList}" Width="{Binding ActualWidth, ElementName=textBlock, Mode=OneWay}" Source="{Binding}" Stretch="UniformToFill"><Image.ContextMenu><ContextMenu DataContext="{Binding PlacementTarget.Tag, RelativeSource={RelativeSource Self}}"><MenuItem Header="删除" Command="{Binding DeleteCommand}"/></ContextMenu></Image.ContextMenu>
</Image>

WPF--ContextMenu绑定命令的一个问题相关推荐

  1. WPF中的命令与命令绑定(二)

    WPF中的命令与命令绑定(二)                                              周银辉 在WPF中,命令(Commanding)被分割成了四个部分,分别是IC ...

  2. WPF采用MVVM模式(绑定:纯前台、命令:触发器绑定命令)

    MVVM绑定 view-viewModel-model,模型介绍省略,就是创建类,添加字段封装属性.注:控件的绑定只能绑定到属性上,不能绑定到字段上: 接下来就是代码 (view): 1 <Wi ...

  3. MVVM 下 ContextMenu的命令绑定

    原文:MVVM 下 ContextMenu的命令绑定 由于ContextMenu不继承父级的DataContext,所以如果要绑定父级的DataContext,直接DataContext=" ...

  4. Windows Presentation Foundation (WPF)中的命令(Commands)简述

    Windows Presentation Foundation (WPF)中的命令(Commands)简述 原文:Windows Presentation Foundation (WPF)中的命令(C ...

  5. WPF 自定义快捷键命令(COMMAND)(转)

    命令简介 WPF 中的命令是通过实现 ICommand 接口创建的.ICommand 公开两个方法(Execute 及 CanExecute)和一个事件(CanExecuteChanged).Exec ...

  6. WPF中的命令(Command)

    这节来讲一下WPF中的命令(Command)的使用. [认识Command] 我们之前说过,WPF本身就为我们提供了一个基础的MVVM框架,本节要讲的命令就是其中一环,通过在ViewModel中声明命 ...

  7. WPF Bind 绑定

    WPF Bind 绑定 原文:WPF Bind 绑定 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/koloumi/article/details/ ...

  8. shell while 结束循环_Linux技巧:使用bash read命令实现一个简易shell(完整版)

    在 Linux 上面,可以使用 bash 的 read 内置命令来读取用户输入. 当在 while 循环中不断调用 read 命令,并打印一些提示字符,如 $.#.> 等,就可以不断接收用户输入 ...

  9. C#中WPF ListView绑定数据的实例详解

    C#中WPF ListView绑定数据的实例详解 发布时间: 2019-03-09 19:29:46 来源: 互联网 作者: 晨曦888 栏目: C#教程 点击: 298 这篇文章主要介绍了C#中WP ...

最新文章

  1. pytorch 笔记:torch.nn.Conv2d
  2. 中台是个什么鬼 | 白话中台战略
  3. 川教版计算机三年级下册教案,川教版小学三年级下册信息技术教案(全册)
  4. hibernate框架 最新_java框架,使用最频繁的9个程序!
  5. mft按钮设计_哈汽机组660MW超临界空冷机组ETS设计及逻辑说明
  6. c#时分秒毫秒微妙_C# 关于DateTime类型 精确到毫秒
  7. (28)System Verilog设计UART发送
  8. Android界面绘制流程--------How Android Draws Views
  9. 路灯干扰者视频2021-08-10
  10. XGBoost和LightGB
  11. PCI-E x1/x4/x8/x16四种插槽区别是什么?具体有什么作用?
  12. opencv切割视频:把长视频切割成固定时间的短视频
  13. iPad 生产力指南:如何把MathType7安装在iPad中,方便写公式,写论文,公式编辑器,完全免费
  14. 【那些年,我们一起追的女孩】第十一章
  15. Android基于网络的VoIP电话的实现linphone
  16. 程序员跳槽B站遭老东家索赔200万,法院判定无需赔偿,竞业限制不应阻碍工程师再就业...
  17. shell脚本控制jar包启停
  18. Ransom Note
  19. 电感/晶振布局布线要求
  20. Syncnavigator破解版注册机

热门文章

  1. 【w3cschool】正则表达式基础语法
  2. python编译成汇编语言_查看C语言/C++编译器生成的汇编语言代码
  3. JavaScript浏览器对象模型
  4. https 非对称加密
  5. bzoj 1647: [Usaco2007 Open]Fliptile 翻格子游戏(枚举)
  6. 弦图与完美消除序列(bzoj 1006: [HNOI2008]神奇的国度)
  7. 喵哈哈村与哗啦啦村的大战(四)(树形DP)
  8. Ubuntu中需要安装的
  9. python 批量修改文件名
  10. cube一站式云原生机器学习平台-加速分布式任务的运行效率