【发布时间】:2013-08-19 15:05:51
【问题描述】:
我想在右键单击时删除我的列表框项目。但是,在我的情况下,右键单击事件不起作用。 下面是我试过的代码。
在构造函数中:
listBox1.MouseDown += new MouseButtonEventHandler(listBox1_MouseRightClick);
右键:
private void listBox1_MouseRightClick(object sender, MouseButtonEventArgs e)
{
if (sender is ListBoxItem)
{
ListBoxItem item = (ListBoxItem)sender;
Harvest_TimeSheetEntry entryToDelete = (Harvest_TimeSheetEntry)item.DataContext;
MessageBoxResult Result = System.Windows.MessageBox.Show("Are you sure?", "Delete Confirmation", System.Windows.MessageBoxButton.YesNo);
if (Result == MessageBoxResult.Yes)
{
Globals._globalController.harvestManager.deleteHarvestEntry(entryToDelete);
}
else
{
System.Windows.MessageBox.Show("Delete operation Terminated");
}
}
}
在 xaml 中:
<ListBox x:Name="listBox1" ItemsSource="{Binding}" Margin="0,131,0,59" ItemTemplateSelector="{StaticResource templateSelector}" SelectionMode="Single" MouseRightButtonDown="listBox1_MouseRightClick">
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<EventSetter Event="MouseDown" Handler="listBox1_MouseRightClick"/>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
请建议,我应该如何使用右键单击事件才能工作?
【问题讨论】:
-
在右键单击时删除记录似乎是一个糟糕的设计选择 - 右键单击几乎被普遍接受为一种显示上下文菜单的安全方式。
-
在仔细阅读您的问题后,我撤回了我的近距离投票并删除了评论。
标签: c# wpf listboxitem right-click