2017-05-01 4 views
-1

を変更し、私は次のようしている:のListViewItemの選択を呼び出していないOnMouseDownEventとリストビューを受けていないが、コールバック

<ListView SelectionMode="Multiple" SelectedIndex="{Binding SelectedIdx}" SelectionChanged="ItemsList_SelectionChanged" MinHeight="200" x:Name="ItemsList" ItemsSource="{Binding Items}" Background="Yellow" Grid.Row="1"> 
        <ListView.ItemsPanel> 
         <ItemsPanelTemplate> 
          <!-- note that the list mode is wide enough to force a wrap to each new line --> 
          <WrapPanel Width="{Binding ActualWidth, ElementName=ItemsList}" /> 
         </ItemsPanelTemplate> 
        </ListView.ItemsPanel> 

        <ListView.ItemTemplate> 
         <DataTemplate> 
          <local:Item/> 
         </DataTemplate> 
        </ListView.ItemTemplate> 

        <ListView.ItemContainerStyle> 
         <Style TargetType="ListViewItem"> 
          <Setter Property="Padding" Value="0"/> 
          <Setter Property="Margin" Value="0"/> 
         </Style> 
        </ListView.ItemContainerStyle> 
       </ListView> 

を各個人の項目「XAMLと呼ばれるが、ONMOUSEOVERがあるされていないマウスダウンコールバックを持っています。

ItemsList_SelectionChangedも決して呼び出されません。

アイテムのXAMLはかなり基本的なものです:呼び出さないmouseoverイベントがあるかどう

<ListViewItem x:Class="Controls.Item" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      xmlns:local="clr-namespace:Controls" 
      mc:Ignorable="d" 
      xmlns:ViewModel="clr-namespace:Controls.Controls.Item.ViewModel" 
      d:DesignHeight="50" d:DesignWidth="50" 
      Width="50" 
      Height="50" 
      Background="Blue" 
      Padding="0,0,0,0" 
     MouseLeftButtonDown="ListViewItem_MouseLeftButtonDown"> 
    <!-- <Grid> 
     < ! - - <Label IsHitTestVisible="False" Width="50" Height="50" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" FontSize="10" Background="Pink" Content="{Binding Label}"/> - - > 
    </Grid> --> 
</ListViewItem> 

私が前に言ったように、「ListViewItem_MouseLeftButtonDown」のいずれかと呼ばれるが、取得doens't。

答えて

1

親ListViewItemまたはListView自体がPreviewMouseDownイベントを処理し、Handled = "True"とマークするので、私はそれを信じています。

  1. がItemTemplateにとのListViewItemを使用しないでください:

    私はあなたのための2つの提案を持っています。とにかくItemTemplateをラップするために1つ作成されています。

  2. ItemTemplateのコンテンツで使用する動作を記述してください。ビヘイビアは、PreviewMouseDownイベントに登録してCommand(ListViewのDataContextからBindingを使用して)を呼び出す必要があります。

関連する問題