如何自定义WPF 中Datagrid的contextmenu

PearLvCh 2013-08-09 01:46:09
datagrid的右键菜单contextmenu,如何实现多列选项,单击每列选项实现不同的功能。
有什么办法实现这样的功能呢?
...全文
394 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
PearLvCh 2013-09-30
  • 打赏
  • 举报
回复
最后使用Popup进行自定义。
PearLvCh 2013-08-27
  • 打赏
  • 举报
回复
如果contextmenu里面的内容是动态增加的,能进行绑定吗?怎么绑定啊?另外通过鼠标选择右键菜单的内容,更新该单元格的内容,应如何更新啊?
米高罗朗祺 2013-08-12
  • 打赏
  • 举报
回复
引用 4 楼 u011643386 的回复:
[quote=引用 3 楼 root5000 的回复:] [quote=引用 2 楼 u011643386 的回复:] [quote=引用 1 楼 root5000 的回复:] 响应鼠标右击事件,然后在事件中判断是多选还是单选,根据判断结果写相应的响应代码
谢谢回复。 我想实现的功能是:右键菜单中含有两列,类似grid形式,grid是两列多行,鼠标选择某列时,会实现不同的功能。比如单击第一列的某个cell时,播放音频,单击第二列的某cell时,会读取该cell的内容。 不知表达的是否清楚? [/quote] 我试下了,效果不好。代码如下,你看看怎么改进吧。 <ListBox.ContextMenu> <ContextMenu> <StackPanel Orientation="Horizontal"> <MenuItem Header="播放音频"/> <MenuItem Header="读取内容"/> </StackPanel> </ContextMenu> </ListBox.ContextMenu>[/quote] 你说的方法从布局来说是符合我说的需求,但是还有一些问题,比如如何把第一列合并,该列中只放一个播放的图标,还有如何设置光标hover事件以及鼠标单击事件等等。 对wpf接触的不多,更不深入,自我感觉应该重写contextmenu事件,不知道有没有做过类似功能的。[/quote] 把布局改成Grid,把第一列的行宽度设置为整个Grid划分的行数就行了,里面放个图标,可以直接放个Image控件,绑定下Command就行了。 至于事件,这个你看看Behavior吧。
PearLvCh 2013-08-12
  • 打赏
  • 举报
回复
引用 3 楼 root5000 的回复:
[quote=引用 2 楼 u011643386 的回复:] [quote=引用 1 楼 root5000 的回复:] 响应鼠标右击事件,然后在事件中判断是多选还是单选,根据判断结果写相应的响应代码
谢谢回复。 我想实现的功能是:右键菜单中含有两列,类似grid形式,grid是两列多行,鼠标选择某列时,会实现不同的功能。比如单击第一列的某个cell时,播放音频,单击第二列的某cell时,会读取该cell的内容。 不知表达的是否清楚? [/quote] 我试下了,效果不好。代码如下,你看看怎么改进吧。 <ListBox.ContextMenu> <ContextMenu> <StackPanel Orientation="Horizontal"> <MenuItem Header="播放音频"/> <MenuItem Header="读取内容"/> </StackPanel> </ContextMenu> </ListBox.ContextMenu>[/quote] 你说的方法从布局来说是符合我说的需求,但是还有一些问题,比如如何把第一列合并,该列中只放一个播放的图标,还有如何设置光标hover事件以及鼠标单击事件等等。 对wpf接触的不多,更不深入,自我感觉应该重写contextmenu事件,不知道有没有做过类似功能的。
米高罗朗祺 2013-08-09
  • 打赏
  • 举报
回复
引用 2 楼 u011643386 的回复:
[quote=引用 1 楼 root5000 的回复:] 响应鼠标右击事件,然后在事件中判断是多选还是单选,根据判断结果写相应的响应代码
谢谢回复。 我想实现的功能是:右键菜单中含有两列,类似grid形式,grid是两列多行,鼠标选择某列时,会实现不同的功能。比如单击第一列的某个cell时,播放音频,单击第二列的某cell时,会读取该cell的内容。 不知表达的是否清楚? [/quote] 我试下了,效果不好。代码如下,你看看怎么改进吧。 <ListBox.ContextMenu> <ContextMenu> <StackPanel Orientation="Horizontal"> <MenuItem Header="播放音频"/> <MenuItem Header="读取内容"/> </StackPanel> </ContextMenu> </ListBox.ContextMenu>
PearLvCh 2013-08-09
  • 打赏
  • 举报
回复
引用 1 楼 root5000 的回复:
响应鼠标右击事件,然后在事件中判断是多选还是单选,根据判断结果写相应的响应代码
谢谢回复。 我想实现的功能是:右键菜单中含有两列,类似grid形式,grid是两列多行,鼠标选择某列时,会实现不同的功能。比如单击第一列的某个cell时,播放音频,单击第二列的某cell时,会读取该cell的内容。 不知表达的是否清楚?
米高罗朗祺 2013-08-09
  • 打赏
  • 举报
回复
响应鼠标右击事件,然后在事件中判断是多选还是单选,根据判断结果写相应的响应代码

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧