gpt4 book ai didi

c# - ListView InputBinding MouseBinding 不起作用

转载 作者:行者123 更新时间:2023-11-30 22:00:38 28 4
gpt4 key购买 nike

为什么 ListView.InputBindings 不起作用?

我已经以同样的方式实现了 Interaction.Triggers,它工作得很好。

<ListView Name="listView1" ItemsSource="{Binding Cars}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseClick">
<i:InvokeCommandAction Command="{Binding ItemSelectCommand}" CommandParameter="{Binding ElementName=listView1,Path=SelectedItem}" />
</i:EventTrigger>
</i:Interaction.Triggers>

<ListView.InputBindings>
<MouseBinding Gesture="LeftClick" Command="{Binding ItemSelectCommand}" CommandParameter="{Binding ElementName=listView1,Path=SelectedItem}"/>
</ListView.InputBindings>
</ListView>

如果没有 (System.Windows.Interactivity for Interaction.Triggers) 也能正常工作,真的不想使用那个额外的组件

最佳答案

正如@Grx70 在此答案的评论中提到的,在父 ListView 中定义的 LeftClick 鼠标手势不适用于 ListViewItem 因为那个项目处理这个手势来获得焦点,所以它不会冒泡那个手势。

您可以将您的 InputBinding 处理转移到 ListViewItem 本身:

<ListView Name="listView1" ItemsSource="{Binding A}">
<ListView.ItemTemplate>
<DataTemplate>
<ContentPresenter Content="{Binding}">
<ContentPresenter.InputBindings>
<MouseBinding Gesture="LeftClick" Command="{Binding DataContext.ItemSelectCommand, ElementName=listView1}" CommandParameter="{Binding ElementName=listView1,Path=SelectedItem}"/>
</ContentPresenter.InputBindings>
</ContentPresenter>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>

您还可以阅读有关 InputBinding 如何在 this qestion 中工作的更多信息,有一个答案可以解释这一点。答案还建议创建附加行为。

关于c# - ListView InputBinding MouseBinding 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28362657/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com