2014-05-19 84 views
0

我在我的項目中有一個itemscontrol包含幾個PathGeometries,一切正常,很好。現在我想使用Interaction.Triggers爲其中一個路徑指定一個「MouseDown」事件但是它根本沒有發出命令,我也找不到原因。ItemsControl和命令

<ItemsControl x:Name="CSListItem" ItemsSource="{Binding Path=ColorCode}"> 
     <ItemsControl.ItemsPanel> 
      <ItemsPanelTemplate> 
       <Grid/> 
      </ItemsPanelTemplate> 
     </ItemsControl.ItemsPanel> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate>     
       <VirtualizingStackPanel Orientation="Horizontal">      
        <Path Stroke="Black" StrokeThickness="1"> 
         <Path.Data> 
          <RectangleGeometry Rect="{Binding Path=RectPoints}"/> 
         </Path.Data> 
        </Path> 
         <Path Fill="Black" Stroke="Black"> 
         <i:Interaction.Triggers> 
          <i:EventTrigger EventName="MouseDown"> 
          <i:InvokeCommandAction Command="{Binding Path=Selected}"/> 
          </i:EventTrigger> 
         </i:Interaction.Triggers> 
         <Path.Data> 
          <RectangleGeometry Rect="{Binding Path=Lines}"/> 
         </Path.Data> 
       </VirtualizingStackPanel> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 

所有綁定除了它不燒任何的MouseDown事件

//ViewModel 
Public RelayCommand Selected {get;private set;} 

void ExecuteSelected(object parameter) 
{ 
// my logic 
} 

Public myViewModel() 
{ 
Selected = new RelayCommand(ExecuteSelected); 
} 
+0

向我們展示您的視圖模型 – Alberto

+0

的相關部分@Alberto我已經包括了一些部分從我的視圖模型。我確實有其他命令,該viewmodel工作得很好。唯一的問題是它不能在ItemsControl –

回答

1

的問題在這裏工作是該項目的DataContext的是不是你的主視圖模型(其中Selected命令被放置)

你應該改變你在像結合:

<i:InvokeCommandAction Command="{Binding Path=DataContext.Selected, ElementName=CSListItem}"/> 
+0

「ElementName = CSListItem」裏面工作,謝謝你+1 –