我有一个列表框。我将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} 
Seat: {2}">
<Binding Path="LastName" />
<Binding Path="FirstName" />
<Binding Path="Seat" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
我很困惑,因为我似乎只能绑定到ItemSource中的内容,但我的“Test”命令不在其中。如何绑定到View的ViewModel中的Command,而不是绑定到Listbox的ItemSource?
不仅如此,我希望能够将所选项的属性传递给命令。这可能吗?
答案 0 :(得分:2)
您可以使用绑定的RelativeSource
属性来获取具有所需DataContext的祖先。例如:
react-routes
答案 1 :(得分:0)
使用像clcto这样的相对来源。
在这里寻找完整的答案: WPF "static" binding in a List