通过单击ListBox中SelectedItem的指定内容来触发WPF事件

时间:2015-05-09 16:46:42

标签: c# xml wpf

我有ListBoxItems的模板,包含3列。每个项目由图片文本图片表示。是否有一些posibillity如何仅通过单击ListBoxItem中的第三列(而不是项目上的其他位置)来触发事件(例如PreviewMouseLeftButtonDown)。

我知道如何通过单击整个ListBoxItem来触发它,但我只需要在单击最后一列(图片)时触发它。感谢。

<ListBox.ItemTemplate>
 <DataTemplate>
   <Grid Margin="0,4,0,4">
      <Grid.ColumnDefinitions>
        <ColumnDefinition Width="20" />
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="20" />
       </Grid.ColumnDefinitions>
       <Image Source="images/showFile.png" Grid.Column="0" Height="16" Width="16"/>
       <TextBlock Text="{Binding Name}" Grid.Column="1"/>
       <Image Source="images/delete.png" Grid.Column="2" Height="16" Width="16"/>                        
  </Grid>
 </DataTemplate>
</ListBox.ItemTemplate>

我尝试过提出的解决方案并且有效。感谢。

1 个答案:

答案 0 :(得分:0)

您只能为所需的组件设置事件侦听器:

<ListBox.ItemTemplate>
    <DataTemplate>
        <Grid Margin="0,4,0,4">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="20" />
                <ColumnDefinition Width="*" />
                <ColumnDefinition Width="20" />
            </Grid.ColumnDefinitions>
        <Image Source="images/showFile.png" Grid.Column="0" Height="16" Width="16"/>
        <TextBlock Text="{Binding Name}" Grid.Column="1"/>
        <Image Source="images/delete.png" Grid.Column="2" Height="16" Width="16" PreviewMouseLeftButtonDown="OnPreviewMouseLeftButtonDown"/>                        
    </Grid>
 </DataTemplate>