日期:2014-05-17  浏览次数:20902 次

如何自定义WPF 中Datagrid的contextmenu
datagrid的右键菜单contextmenu,如何实现多列选项,单击每列选项实现不同的功能。
有什么办法实现这样的功能呢?

------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

响应鼠标右击事件,然后在事件中判断是多选还是单选,根据判断结果写相应的响应代码


谢谢回复。

我想实现的功能是:右键菜单中含有两列,类似grid形式,grid是两列多行,鼠标选择某列时,会实现不同的功能。比如单击第一列的某个cell时,播放音频,单击第二列的某cell时,会读取该cell的内容。

不知表达的是否清楚?

我试下了,效果不好。代码如下,你看看怎么改进吧。
                    <ListBox.ContextMenu>
                        <ContextMenu>
                            <StackPanel
                                Orientation="Horizontal">
                                <MenuItem
                                    Header="播放音频"/>
                                <MenuItem
                                    Header="读取内容"/>
                            </StackPanel>
                        </ContextMenu>
                    </ListBox.ContextMenu>


你说的方法从布局来说是符合我说的需求,但是还有一些问题,比如如何把第一列合并,该列中只放一个播放的图标,还有如何设置光标hover事件以及鼠标单击事件等等。
对wpf接触的不多,更不深入,自我感觉应该重写contextmenu事件,不知道有没有做过类似功能的。

把布局改成Grid,把第一列的行宽度设置为整个Grid划分的行数就行了,里面放个图标,可以直接放个Image控件,绑定下Command就行了。
至于事件,这个你看看Behavior吧。