2013-02-18 75 views
0

我有一个列表视图,我通过代码填充标签。当用户点击标签时,我想处理MouseDown事件,但它不会触发。预览鼠标向下发射。无法处理从ListView项目(标签)的MouseDown事件

我知道这里有一些关于路由/冒泡事件的信息,我猜这是我遇到的问题,这是我还没有掌握的一个概念。

我不能使用预览事件,因为这不包括我所需要的对象(标签信息不会被分配到标签的第二次点击,所以我想我需要鼠标按下,而不是预览)

欣赏你的时间。

XAML

<telerik:RadTabItem x:Name="Media" Header="Media" Height="22" Width="100"> 
       <Grid x:Name="ListboxMedia"> 


        <ListView x:Name="ListViewImages" HorizontalAlignment="Left" Height="303" Margin="697,10,0,0" VerticalAlignment="Top" Width="178" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Auto" IsTabStop="True" TabIndex="3" MouseDown="ListViewImages_MouseDown" PreviewMouseDown="ListViewImages_PreviewMouseDown"> 
         <ListView.View> 
          <GridView> 
           <GridViewColumn x:Name="ListViewImageColumn" Header="Images" Width="178" /> 
          </GridView> 
         </ListView.View> 
        </ListView> 

        <Button x:Name="BtnUpload" Content="Upload" Height="24" Margin="809,318,38,0" VerticalAlignment="Top" Click="BtnUpload_Click"/> 
        <Button x:Name="BtnDownload" Content="Download" Height="24" Margin="728,318,109,0" VerticalAlignment="Top"/> 
        <Image x:Name="ImageViewPort" HorizontalAlignment="Left" Height="293" Margin="21,20,0,0" VerticalAlignment="Top" Width="581"/> 
       </Grid> 

      </telerik:RadTabItem> 

方法,其填充标记引入ListViewImages

void PopulateMedia() 
     { 
      var collectImages = new Media().CollectMediaForAsset(_assetId); 

      int i = 1; 

      foreach (var collectImage in collectImages) 
      { 
       var label = new Label(); 
       label.Tag = collectImage.FileName; 
       label.Content = "Image" + i.ToString(); 
       ListViewImages.Items.Add(label);     
       i++; 
      } 
     } 

处理程序

private void ListViewImages_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) 
     { 
      Debug.WriteLine("Clicked Down"); //does not work 


     } 

     private void ListViewImages_PreviewMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) 
     { 
      Debug.WriteLine("Clicked Preview"); //works 


     } 
+0

我已经解决了我的选择更改事件的直接问题,但是我真的很想了解一些帮助来理解我的原始问题。 – Damo 2013-02-18 23:23:41

回答

0

使用的选择改变了活动