现有一个wpf的窗体,其中有一个数据表格。显示有3条记录。现在想实现这样的功能:
1>右键鼠标选择选择任意一条记录时,可以弹出子菜单(子菜单包含3个菜单选项,分别是新建,编辑,删除)。
2>当选择记录后,依据该记录中的标识,判断右键菜单哪些可用,哪些变灰不可用。比如状态为正常的记录,可以使用菜单新建,编辑和删除;如果是状态为删除的,则菜单中的删除不可使用,灰色显示,其它两项可用。
3>当点击菜单后,如何取出右键时点击的当前记录的记录id值。小弟新近接触wpf,对这方面一无所知,还请大神们,多多指教。最好能提供可借鉴参考的代码。
1>右键鼠标选择选择任意一条记录时,可以弹出子菜单(子菜单包含3个菜单选项,分别是新建,编辑,删除)。
2>当选择记录后,依据该记录中的标识,判断右键菜单哪些可用,哪些变灰不可用。比如状态为正常的记录,可以使用菜单新建,编辑和删除;如果是状态为删除的,则菜单中的删除不可使用,灰色显示,其它两项可用。
3>当点击菜单后,如何取出右键时点击的当前记录的记录id值。小弟新近接触wpf,对这方面一无所知,还请大神们,多多指教。最好能提供可借鉴参考的代码。
<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>
<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;
}
..........