包含按钮的stackpanel不会触发命令wpf

时间:2018-05-28 13:43:30

标签: wpf mvvm wpf-controls icommand

我有一个包含许多元素(包括按钮)的堆栈面板。我无法通过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,但无效。

1 个答案:

答案 0 :(得分:1)

没有为按钮设置DataContext。谢谢@Foggy Finder

<Button Cursor="Hand" Command="{Binding ElementName=ImagesList, Path=DataContext.MoveImageUp}" CommandParameter="{Binding}">