【发布时间】:2013-11-20 14:59:15
【问题描述】:
下面这个更大的代码示例有效。现在我真正想要路由的是EventTrigger 中的GridViewColumnHeader.Click 事件。用GridViewColumnHeader.Click 替换MouseMove 不起作用。有什么想法吗?
<ListView ItemsSource="{Binding MyCollection}"
GridViewColumnHeader.Click="GridViewColumnHeaderClickedHandler">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseMove">
<cmd:EventToCommand
Command="{Binding FooCommand, Mode=OneWay}"
CommandParameter="{Binding}"
MustToggleIsEnabledValue="True" />
</i:EventTrigger>
</i:Interaction.Triggers>
<ListView.View>
<GridView>
<GridViewColumn Header="ColumnA"
DisplayMemberBinding="{Binding PropertyA}"></GridViewColumn>
<GridViewColumn Header="ColumnB"
DisplayMemberBinding="{Binding PropertyB}"></GridViewColumn>
<GridViewColumn Header="ColumnC"
DisplayMemberBinding="{Binding PropertyC}"></GridViewColumn>
</GridView>
</ListView.View>
</ListView>
【问题讨论】:
-
GridViewColumnHeader.Click ?
-
是的。当我单击列的标题时执行它。我想开始排序。
-
您可以尝试附加行为,例如 Dan Parsonson 建议的 in this answer。
-
datagrid 支持排序 将 SortMemberPath="PropertyA" 添加到 colmn 声明中。排序是您唯一想通过单击标题完成的事情吗?
-
感谢您的提示。最终使用了 DataGrid,它也支持通过 CanUserSortColumns 属性进行排序(默认启用)。
标签: wpf command mvvm-light eventtocommand