C# GridView标题单击

C# GridView标题单击,c#,wpf,gridview,C#,Wpf,Gridview,我正在尝试找出如何将栅格视图标题单击指向我的Viewmodel <ListView ItemsSource="{Binding UserProfileData}" GridViewColumnHeader.Click="Handle_Click"> <ListView.View> <GridView> <GridViewColumn DisplayMemberBind

我正在尝试找出如何将栅格视图标题单击指向我的Viewmodel

 <ListView ItemsSource="{Binding UserProfileData}" GridViewColumnHeader.Click="Handle_Click">
       <ListView.View>
                <GridView>
                    <GridViewColumn DisplayMemberBinding="{Binding Name}" Header="User ID"/>
                    <GridViewColumn DisplayMemberBinding="{Binding LastUsed}" Header="Last Loaded"/>
                    <GridViewColumn DisplayMemberBinding="{Binding IsLoaded}" Header="Logged In"/>
                </GridView>
            </ListView.View>
        </ListView>

GridViewColumnHeader.Click=“Handle\u Click”会将其推送到my MainWindow.xaml.cs,但我想让单击转到my MainWindow的DataContext

<Window.DataContext>
    <vm:MainWindowViewModel/>
</Window.DataContext>


有什么想法吗?

您需要添加两个组件的参考:

System.Windows.Interactivity
Microsoft.Expression.Interactions
添加以下名称空间:

xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
Xaml:


可以使用样式将
GridViewColumnHeader的
命令
属性绑定到视图模型的
ICommand
源属性。然后可以将标题
字符串
作为参数传递给命令:

<ListView x:Name="test" ItemsSource="{Binding UserProfileData}">
    <ListView.Resources>
        <Style TargetType="GridViewColumnHeader">
            <Setter Property="Command" Value="{Binding YourCommandProperty}" />
            <Setter Property="CommandParameter" Value="{Binding Content, RelativeSource={RelativeSource Self}}" />
        </Style>
    </ListView.Resources>
    <ListView.View>
        <GridView>
            <GridViewColumn DisplayMemberBinding="{Binding Name}" Header="User ID"/>
            <GridViewColumn DisplayMemberBinding="{Binding LastUsed}" Header="Last Loaded"/>
            <GridViewColumn DisplayMemberBinding="{Binding IsLoaded}" Header="Logged In"/>
        </GridView>
    </ListView.View>
</ListView>

public void OnClick(object sender, RoutedEventArgs e)
    {

    }
<ListView x:Name="test" ItemsSource="{Binding UserProfileData}">
    <ListView.Resources>
        <Style TargetType="GridViewColumnHeader">
            <Setter Property="Command" Value="{Binding YourCommandProperty}" />
            <Setter Property="CommandParameter" Value="{Binding Content, RelativeSource={RelativeSource Self}}" />
        </Style>
    </ListView.Resources>
    <ListView.View>
        <GridView>
            <GridViewColumn DisplayMemberBinding="{Binding Name}" Header="User ID"/>
            <GridViewColumn DisplayMemberBinding="{Binding LastUsed}" Header="Last Loaded"/>
            <GridViewColumn DisplayMemberBinding="{Binding IsLoaded}" Header="Logged In"/>
        </GridView>
    </ListView.View>
</ListView>