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