wpf 中如何制作这样的菜单

I_am_Z 2013-04-10 01:20:45
现有一个wpf的窗体,其中有一个数据表格。显示有3条记录。现在想实现这样的功能:
1>右键鼠标选择选择任意一条记录时,可以弹出子菜单(子菜单包含3个菜单选项,分别是新建,编辑,删除)。
2>当选择记录后,依据该记录中的标识,判断右键菜单哪些可用,哪些变灰不可用。比如状态为正常的记录,可以使用菜单新建,编辑和删除;如果是状态为删除的,则菜单中的删除不可使用,灰色显示,其它两项可用。
3>当点击菜单后,如何取出右键时点击的当前记录的记录id值。

小弟新近接触wpf,对这方面一无所知,还请大神们,多多指教。最好能提供可借鉴参考的代码。
...全文
555 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Nokia950 2013-05-07
  • 打赏
  • 举报
回复
<fstCtrl:CustomDataGrid.ContextMenu> <ContextMenu> <MenuItem Header="入院"> <MenuItem Header="入院予定編集" Click="SubMenu_Clicked" Name="HospitalizeScheduleEditMenu"/> <MenuItem Header="入院予定取消" Click="SubMenu_Clicked" Name="HospitalizeScheduleCancelMenu" /> </MenuItem> </ContextMenu> </fstCtrl:CustomDataGrid.ContextMenu> private void patientListDataGrid_ContextMenuOpening(object sender, ContextMenuEventArgs e) { PatientListViewModel vm = this.DataContext as PatientListViewModel; if (vm != null) { if (e.OriginalSource is TextBlock) { e.Handled = false; PatientRecord SelectedRecord = this.patientListDataGrid.SelectedItem as PatientRecord; if (SelectedRecord == null) { e.Handled = true; } else { vm.SelectedRecord = SelectedRecord; CheckVisableByParam(SelectedRecord); } } else { e.Handled = true; } } } private void CheckVisableByParam(PatientRecord SelectedRecord) { bool haveLeavingPlan; bool haveMovingPlan; int state = 0; this.HospitalizeScheduleEditMenu.IsEnabled = false; this.HospitalizeScheduleCancelMenu.IsEnabled = false; } ..........
I_am_Z 2013-04-10
  • 打赏
  • 举报
回复
谢谢楼上兄弟,菜单怎么做已经弄出来了,不过,我需要的是后面2项,关于菜单调用和控制可用不可用的部分。
DENQH 2013-04-10
  • 打赏
  • 举报
回复
 <ContextMenu  VerticalAlignment="Center" BorderThickness="0" Background="#FFF6F6F6" Height="Auto" Width="180" DataContext="{Binding}" x:Name="contextMenu2">
                    <MenuItem Header="复制" Command="ApplicationCommands.Copy" x:Name="MenuItem0" />
                    <MenuItem Header="粘贴" Command="ApplicationCommands.Paste" x:Name="MenuItem1" />
                    <MenuItem Header="剪切" Command="ApplicationCommands.Cut" x:Name="MenuItem2" />
                       </ContextMenu>
I_am_Z 2013-04-10
  • 打赏
  • 举报
回复
会的,只不过要的比较急,不得已才来投帖。
sqlchen 2013-04-10
  • 打赏
  • 举报
回复
建议lz找本wpf的书,看看binding, command章节,有时间再看看mvvm 基本上都会有lz这种场景的例子

110,539

社区成员

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

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

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