2013-05-16 50 views
0

我在列表框中有一個列表框,這些列表框是從可觀察集合動態填充的,我試圖使用列表框項目的「選定」事件的交互觸發器啓動一個動作,以便我可以綁定到來自可觀察集合的項目。將項目模板中的操作綁定到事件

我遇到的問題是,我似乎可以通過事件觸發器訪問'Selected'事件。

下面的代碼:

 <ListBox x:Name="AssocitedLayerListControl" Background="Transparent" BorderBrush="Transparent" ItemContainerStyle="{StaticResource ListBoxItemStyle}" 
       ScrollViewer.VerticalScrollBarVisibility="Hidden" ScrollViewer.HorizontalScrollBarVisibility="Auto" 
       VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="10,0,10,0" Padding="0" Height="25" Width="Auto" > 

      <!-- Attribute Table Item Template--> 
      <ListBox.ItemTemplate> 
       <DataTemplate> 
        <ContentControl> 
         <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0"> 
          <TextBlock Text="{Binding Path=Key}" 
            Foreground="#FFFFFFFF" 
            FontSize="10" LineHeight="20" 
            HorizontalAlignment="Left" VerticalAlignment="Center" 
            Margin="5,0,5,0" Padding="0" /> 
          <Button BorderBrush="#FFFFFFFF" BorderThickness="1" Background="#FF000000" 
           HorizontalAlignment="Left" VerticalAlignment="Top" 
           Padding="1" Margin="0,1,0,1" Style="{StaticResource CloseItemStyle}"> 
           <i:Interaction.Triggers> 
            <i:EventTrigger EventName="Click"> 
             <actions:RemoveLayer LayerName="{Binding Path=Key}" TargetGraphicsLayer="{Binding Path=Value}" /> 
            </i:EventTrigger> 
           </i:Interaction.Triggers> 
          </Button> 
         </StackPanel> 
         <i:Interaction.Triggers> 
          <i:EventTrigger EventName="Selected" SourceObject="{Binding RelativeSource={RelativeSource Mode=TemplatedParent, AncestorType=ListBoxItem}}"> 
           <actions:SetGraphicLayerInGrid LayerName="{Binding Path=Key}" TargetGraphicsLayer="{Binding Path=Value}" /> 
          </i:EventTrigger> 
         </i:Interaction.Triggers> 
        </ContentControl> 
       </DataTemplate> 
      </ListBox.ItemTemplate> 

      <ListBox.ItemsPanel> 
       <ItemsPanelTemplate> 
        <StackPanel Orientation="Horizontal"/> 
       </ItemsPanelTemplate> 
      </ListBox.ItemsPanel> 

     </ListBox> 

回答

2

嘗試聽一個ListBoxItem的IsSelected財產與DataTrigger

xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" 
... 
<i:Interaction.Triggers> 
    <ei:DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource FindAncestor, AncestorType=ListBoxItem}}" Value="True"> 
     <actions:SetGraphicLayerInGrid LayerName="{Binding Path=Key}" TargetGraphicsLayer="{Binding Path=Value}" /> 
    </ei:DataTrigger> 
</i:Interaction.Triggers> 
+0

我正要張貼此作爲這個固定爲我。感謝您的貢獻。 – BrokenRobot

相關問題