2012-01-18 8 views
0

リストボックスの背景のどこでも(MouseDown)をクリックすると、以下のxamlが正しく動作します。問題は、リストボックス内のいずれかの項目をクリックしても機能しないということです。私は境界線、画像またはTextBlock内にトリガコードを入れてみましたが、成功しませんでした。MVVMリストボックスビューでInteraction.Triggersが失敗する

<ListBox Name="SelectL2List" ItemsSource="{Binding L2Items, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" IsSynchronizedWithCurrentItem="True"> 
    <i:Interaction.Triggers> 
     <i:EventTrigger EventName="MouseDown"> 
      <si:CallDataMethod Method="HideSelectL2View" Target="{Binding}" /> 
     </i:EventTrigger> 
    </i:Interaction.Triggers> 
    <ListBox.ItemsPanel> 
     <ItemsPanelTemplate> 
      <WrapPanel IsItemsHost="True" /> 
     </ItemsPanelTemplate> 
    </ListBox.ItemsPanel> 
    <ListBox.ItemTemplate> 
     <DataTemplate DataType="{x:Type ViewModels:MediaItemViewModel}" > 
      <Border BorderThickness="1,1,3,3" Margin="10" CornerRadius="3"> 
       <StackPanel Orientation="Horizontal" > 
        <Image Source="{Binding Image}"/> 
         <TextBlock Text="{Binding L2Title}" /> 
        </StackPanel> 
       </Border> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

助けてください。

答えて

0

あなたは物事が同様にテストされていることを確認しなければなりません、Transparentに境界のBackgroundを設定することができます。

また、マウスイベントはListBoxItemsによって傍受されます。tunnelingバージョン(PreviewMouseDown)を使用してください。

+0

H.B. - PreviewMouseDownは機能しましたが、まずはSelectionChangedを起動してからPreviewMouseDownイベントを呼び出す必要があります - –

+0

@LoneStarr:なぜ 'IsSelected'が' true'になったら( 'DataTrigger'を使って)トリガーしませんか? –

+0

イベント名をSelectionChangedに変更し、VM内のコードを再読み込みしました。私はあなたが苦労していたコンボボックスにあなたのトンネリングチップを使用しました。私はいくつかの新しい知識を得るために時間を費やしてくれてありがとう。 –