思路是
1、最后一列始终填满剩余
<ListViewx:Name="mListView" SizeChanged="mListView_SizeChanged">
private void mListView_SizeChanged(object sender, SizeChangedEventArgs e)
{
double firstLength = this.A.Width + this.B.Width + this.C.Width;
this.ActBtn.Width = mListView.ActualWidth - firstLength;
}
ABC是ListView前3列的名称,获取他们的宽总和,然后把剩余的宽度赋给最后一列ActBtn
2、右键点击最后一列清空当前选择
最后一列可以放一个TextBlock,然后设置它的右键事件来处理
<GridViewColumn Header="" x:Name="ActBtn">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock HorizontalAlignment="Stretch" Height="50" Margin="0,-10,-10,-10" Opacity="0.001" MouseRightButtonUp="Button_MouseRightButtonUp">
</TextBlock>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
private void Button_MouseRightButtonUp(object sender, MouseButtonEventArgs e)
{
mListView.SelectedItems.Clear();
}
以上两点可以实现:单击最后一列可以选中当前一行,但是右键最后一列会清空当前选择,然后可以在右键菜单里添加一些功能