2015-10-05 80 views
1

我有一個ListBox。我有列表框的ItemSource綁定到列表。如何將命令綁定到列表框項目?

在ItemTemplate中,我希望能夠爲每個項目添加一個MouseBinding。

這是我到目前爲止有:

<ListBox.ItemTemplate> 
    <DataTemplate> 
     <Border Background="Blue" CornerRadius="8" > 
      <Border.InputBindings> 
       <MouseBinding MouseAction="LeftClick" Command="{Binding Test}" CommandParameter="{Binding PropertyOfClickItem}" /> 
      </Border.InputBindings> 
      <TextBlock Foreground="White" FontSize="24" FontWeight="Bold" Margin="5"> 
       <TextBlock.Text> 
        <MultiBinding StringFormat="{}{0}, {1} &#x0a;Seat: {2}"> 
         <Binding Path="LastName" /> 
         <Binding Path="FirstName" /> 
         <Binding Path="Seat" /> 
        </MultiBinding> 
       </TextBlock.Text> 
      </TextBlock> 
     </Border> 

     </DataTemplate> 
</ListBox.ItemTemplate> 

我很困惑,因爲它似乎我只能我的ItemSource內綁定到的東西,但我的「測試」命令不是內。我如何綁定到視圖的ViewModel中的Command,而不是綁定到Listbox的ItemSource?

不僅如此,但我希望能夠將所選項目的屬性傳遞給命令。這可能嗎?

回答

2

您可以使用綁定的RelativeSource屬性來獲取具有所需DataContext的祖先。例如:

Command="{Binding DataContext.Test, RelativeSource={RelativeSource AncestorType={x:Type ListBox}}}" 
相關問題