作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在TextBlock上调用click命令,我这样做是这样的
<TextBlock Text="New Project">
<TextBlock.InputBindings>
<MouseBinding Command="{Binding Path=NewProject}" MouseAction="LeftClick"/>
</TextBlock.InputBindings>
</TextBlock>
<ItemsControl Margin="8" ItemsSource="{Binding Path=Projects}" Grid.Row="1" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<WrapPanel>
<TextBlock Text="{Binding Name}" Style="{StaticResource ClickableTextBlock}" >
<TextBlock.InputBindings>
<MouseBinding Command="{Binding Path=OpenTasks}" MouseAction="LeftClick"/>
</TextBlock.InputBindings>
</TextBlock>
</WrapPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
最佳答案
DataContext
中的隐式ItemTemplate
是当前数据项。但是OpenTasks
不是每个数据项的一部分。正如您在评论中所说,它是 View 模型的一部分。因此,在这种情况下,您必须为Binding设置一些带有RelativeSource
的显式源。它有助于在视觉树上行走并定位所需的源。在这种情况下,您需要DataContext
的ItemsControl
。代码应如下所示:
<MouseBinding Command="{Binding DataContext.OpenTasks,
RelativeSource={RelativeSource AncestorType=ItemsControl}}"
MouseAction="LeftClick"/>
关于wpf - 如何在ItemsControl中设置MouseBinding,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26830337/
我是一名优秀的程序员,十分优秀!