我在我的应用程序中添加了一个GridView控件。现在,我想找到用户点击的列标题的索引。因为我想检查列是否有索引0,如果是这种情况,那么我将从gridview中删除分组,在其他情况下,我将根据列代码将分组添加到gridview中。目前我正在识别带有标题的列。
但我不想硬编码标题名称。所以,我想知道如何找到列的索引。
以下是我在Header点击事件处理程序中使用的代码。
private void ListViewLocalSystem_Click(object sender, RoutedEventArgs e)
{
GridViewColumnHeader headerClicked = e.OriginalSource as GridViewColumnHeader;
if (headerClicked != null)
{
if (headerClicked.Column.Header.ToString() == "Name")
{
CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(ListViewLocalSystem.ItemsSource);
if (view.GroupDescriptions != null)
{
view.GroupDescriptions.Clear();
}
}
else if (headerClicked.Column.DisplayMemberBinding is Binding)
{
string bindingProperty = ((Binding)(headerClicked.Column.DisplayMemberBinding)).Path.Path;
CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(ListViewLocalSystem.ItemsSource);
PropertyGroupDescription groupDescription = new PropertyGroupDescription(bindingProperty);
if (view.GroupDescriptions != null)
{
view.GroupDescriptions.Clear();
}
view.GroupDescriptions.Add(groupDescription);
}
}
}
答案 0 :(得分:1)
您可以通过在父Columns
的{{1}}集合中获取该列的索引来获取该列的从零开始的显示索引:
GridViewHeaderRowPresenter