wpf - 包含按钮的堆栈面板不会触发命令 wpf
问题描述
我有一个堆栈面板,其中包含许多元素,包括按钮。我无法通过 ICommands 触发方法。它通过在 Button.Click 事件背后的代码中添加事件处理程序来工作。因为,我遵循 MVVM 模式,所以我想触发一个命令。此外,此堆栈面板是我的 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
,不起作用。
解决方案
没有为按钮设置 DataContext。谢谢@Foggy Finder
<Button Cursor="Hand" Command="{Binding ElementName=ImagesList, Path=DataContext.MoveImageUp}" CommandParameter="{Binding}">
推荐阅读
- javascript - 如何在 fetch async 加载我的数据时在 Javascript 中添加微调器?
- javascript - 如何从 js (QML) 设置嵌套组件的属性?
- javascript - 无法使用相同代码在两个地方显示错误
- spring - 为什么我不能在 Spring Boot 中使用 YAML 加载属性 POJO?
- python - 生成进程的打印输出会导致输出格式错误:为什么?
- javascript - 如何知道 iOS 用户是否拒绝了 react-native 的权限?
- php - PHP7.4中如何让PHPUnit测试属性初始化?
- c# - 从文本文件中计算行数并将其计入 1 行
- php - 主管 + Nginx + PHP-FPM 不重定向标准错误
- java - Hibernate orphanRemoval 删除我的父实体