WPF--ContextMenu绑定命令的一个问题
出现的问题
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绑定命令的一个问题相关推荐
- WPF中的命令与命令绑定(二)
WPF中的命令与命令绑定(二) 周银辉 在WPF中,命令(Commanding)被分割成了四个部分,分别是IC ...
- WPF采用MVVM模式(绑定:纯前台、命令:触发器绑定命令)
MVVM绑定 view-viewModel-model,模型介绍省略,就是创建类,添加字段封装属性.注:控件的绑定只能绑定到属性上,不能绑定到字段上: 接下来就是代码 (view): 1 <Wi ...
- MVVM 下 ContextMenu的命令绑定
原文:MVVM 下 ContextMenu的命令绑定 由于ContextMenu不继承父级的DataContext,所以如果要绑定父级的DataContext,直接DataContext=" ...
- Windows Presentation Foundation (WPF)中的命令(Commands)简述
Windows Presentation Foundation (WPF)中的命令(Commands)简述 原文:Windows Presentation Foundation (WPF)中的命令(C ...
- WPF 自定义快捷键命令(COMMAND)(转)
命令简介 WPF 中的命令是通过实现 ICommand 接口创建的.ICommand 公开两个方法(Execute 及 CanExecute)和一个事件(CanExecuteChanged).Exec ...
- WPF中的命令(Command)
这节来讲一下WPF中的命令(Command)的使用. [认识Command] 我们之前说过,WPF本身就为我们提供了一个基础的MVVM框架,本节要讲的命令就是其中一环,通过在ViewModel中声明命 ...
- WPF Bind 绑定
WPF Bind 绑定 原文:WPF Bind 绑定 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/koloumi/article/details/ ...
- shell while 结束循环_Linux技巧:使用bash read命令实现一个简易shell(完整版)
在 Linux 上面,可以使用 bash 的 read 内置命令来读取用户输入. 当在 while 循环中不断调用 read 命令,并打印一些提示字符,如 $.#.> 等,就可以不断接收用户输入 ...
- C#中WPF ListView绑定数据的实例详解
C#中WPF ListView绑定数据的实例详解 发布时间: 2019-03-09 19:29:46 来源: 互联网 作者: 晨曦888 栏目: C#教程 点击: 298 这篇文章主要介绍了C#中WP ...
最新文章
- pytorch 笔记:torch.nn.Conv2d
- 中台是个什么鬼 | 白话中台战略
- 川教版计算机三年级下册教案,川教版小学三年级下册信息技术教案(全册)
- hibernate框架 最新_java框架,使用最频繁的9个程序!
- mft按钮设计_哈汽机组660MW超临界空冷机组ETS设计及逻辑说明
- c#时分秒毫秒微妙_C# 关于DateTime类型 精确到毫秒
- (28)System Verilog设计UART发送
- Android界面绘制流程--------How Android Draws Views
- 路灯干扰者视频2021-08-10
- XGBoost和LightGB
- PCI-E x1/x4/x8/x16四种插槽区别是什么?具体有什么作用?
- opencv切割视频:把长视频切割成固定时间的短视频
- iPad 生产力指南:如何把MathType7安装在iPad中,方便写公式,写论文,公式编辑器,完全免费
- 【那些年,我们一起追的女孩】第十一章
- Android基于网络的VoIP电话的实现linphone
- 程序员跳槽B站遭老东家索赔200万,法院判定无需赔偿,竞业限制不应阻碍工程师再就业...
- shell脚本控制jar包启停
- Ransom Note
- 电感/晶振布局布线要求
- Syncnavigator破解版注册机
热门文章
- 【w3cschool】正则表达式基础语法
- python编译成汇编语言_查看C语言/C++编译器生成的汇编语言代码
- JavaScript浏览器对象模型
- https 非对称加密
- bzoj 1647: [Usaco2007 Open]Fliptile 翻格子游戏(枚举)
- 弦图与完美消除序列(bzoj 1006: [HNOI2008]神奇的国度)
- 喵哈哈村与哗啦啦村的大战(四)(树形DP)
- Ubuntu中需要安装的
- python 批量修改文件名
- cube一站式云原生机器学习平台-加速分布式任务的运行效率