我有一个包含许多元素(包括按钮)的堆栈面板。我无法通过ICommands触发方法。它通过在Button.Click事件的代码中添加事件处理程序来工作。因为,我遵循MVVM模式,我想发出一个命令。此外,此stackpanel是我的listviewitem的数据窗口。
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" HorizontalAlignment="Center" IsHitTestVisible="True">
<Button Cursor="Hand" Command="{Binding MoveImageUp}">
<Button.Background>
<ImageBrush ImageSource="..."/>
</Button.Background>
</Button>
<Grid>
<Image Source="{Binding Path=Image}"/>
<TextBlock Height="20" Width="20" Text="{Binding Path=Order}" Opacity="0.8" HorizontalAlignment="Left" VerticalAlignment="Top"/>
</Grid>
<GridSplitter HorizontalAlignment="Center" Padding="1" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
我尝试将IsHitTestVisibile
设置为true
,但无效。
答案 0 :(得分:1)
没有为按钮设置DataContext。谢谢@Foggy Finder
<Button Cursor="Hand" Command="{Binding ElementName=ImagesList, Path=DataContext.MoveImageUp}" CommandParameter="{Binding}">