【问题标题】:How to route GridViewColumnHeader.Click event with EventToCommand and MVVM Light如何使用 EventToCommand 和 MVVM Light 路由 GridViewColumnHeader.Click 事件
【发布时间】: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


【解决方案1】:

我使用了默认支持排序的DataGrid。

【讨论】:

    猜你喜欢
    • 2017-12-18
    • 2012-07-08
    • 1970-01-01
    • 2013-02-25
    • 2017-06-17
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多