2012-03-05 58 views
0
private void MenuItemDelete_Click(object sender, RoutedEventArgs e) 
{    
    if (listBoxFiles.SelectedIndex == -1) 
    { 
     return; 
    } 

    //string filePath = (listBoxFiles.SelectedItem).ToString(); 
    int index = listBoxFiles.SelectedIndex; 
    listBoxFiles.Items.RemoveAt(index); 
} 

<ListBox Height="95" HorizontalAlignment="Left" Margin="78,35,0,0" Name="listBoxFiles" VerticalAlignment="Top" Width="323" Grid.ColumnSpan="2" ScrollViewer.HorizontalScrollBarVisibility="Visible" ScrollViewer.VerticalScrollBarVisibility="Visible" SelectionMode="Multiple" > 
        <ListBox.ItemContainerStyle> 
         <Style TargetType="{x:Type ListBoxItem}" BasedOn="{StaticResource {x:Type ListBoxItem}}"> 

          <EventSetter Event="MouseDoubleClick" Handler="ListBoxItem_DoubleClick" /> 
         </Style> 
        </ListBox.ItemContainerStyle> 
        <ListBox.ContextMenu> 
         <ContextMenu> 
          <MenuItem Header="Delete File" Click="MenuItemDelete_Click"></MenuItem> 
         </ContextMenu> 
        </ListBox.ContextMenu> 
       </ListBox> 
  1. 为什么每个列表框中按下项目改变其从选中状态(颜色为蓝色)不选择,如果选择了文件,我按在列表框的空白文件仍选择?列表框菜单发出

  2. 我实现的功能,如果我在列表框,并在菜单中按Delete键在项目按鼠标右键单击该项目从我的名单中移出,但这只是如果之前没有选择的文件,我的意思是,如果我按项目发生在列表框中,比右击并删除列表框中remined文件并没有被删除

+0

我并不想成为一个asshat,因为你听起来像一个相当奇怪的开发者(这是伟大的:d)。不过,我建议花一些时间在讲英语的论坛上提高你的英语水平。当问题难以理解时,解决问题真的很难。 – 2012-03-05 20:20:55

+0

好吧,让我再试一次,你可以看到我的功能,我有应用程序与列表框,我可以添加文件到我的列表框,我想要从列表框中删除文件的选项(我已经有清除按钮谁清除所有列表框,但我想从多个选项中删除一个文件),当我按下右键单击我的列表框中的项目,然后选择删除(从我的菜单)文件删除,但如果我按左列表框中的项目左键(而不是它变成蓝色),并比右键点击并删除文件没有删除,我想知道为什么。 – user979033 2012-03-05 21:00:29

回答

1

当你选择左键单击某个项目,然后右键单击同一项目,它实际上取消选中该项目。

这是设计的行为,因为你的SelectionMode =“多”在你的列表框,默认为以下行为:

  • 左键单击=选择的项目。
  • 右键点击=取消选择该项目。

由于右键单击取消选择该项目,每当您右键单击以访问上下文菜单时,该项目将首先被取消选择,然后将出现上下文菜单。

然后,你不再有选择了一个项目,所以删除不会删除任何东西。

为了解决这个问题,只需将SelectionMode =“单身”,而现在右击将不再取消选择的项目,按预期删除会工作。

+0

好的,我会尝试,谢谢! – user979033 2012-03-06 15:51:00