获取 DataGrid 行索引值?

Get DataGrid row index of value?

我想做的是从内容中获取行索引。

我有一个包含 2 列的 DataGrid,一列用于 Identifier(作为 DataGridTextColumn),另一列用于 Refferer,它引用特定的标识符(作为 DataGridTemplateColumn 标签,它有一个 MouseUp 处理程序和条件格式化)。

我还有一个 CollectionViewSource 源作为一个包含标识符和引荐来源网址的列表。

单击引荐来源列中的项目时,MouseUp 处理程序会检索标签的内容,如下所示:

private void Item_MouseUp(object sender, RoutedEventArgs e) {
    string _Referrer = (string)(sender as Label).Content;
    //Something here to get index of row that contains _Referrer.
    e.Handled = true;
}

我已经尝试命名我的 DataGrid 并执行 `dataGrid.Items.IndexOf(_Referrer) 但这不会生成项目的索引。

我检索此行索引的目的是让我可以使用以下方法将列表滚动到特定项目:

dataGrid.SelectedIndex = IndexOfIdentifier;
dataGrid.UpdateLayout();
dataGrid.ScrollIntoView(dataGrid.SelectedItem);

尝试以下操作:

var selectedItem = dataGrid.Items.OfType<People>().FirstOrDefault(q => q.Referrer = _Referrer);
if (selectedItem != null)
{
    // you can get index of this item if you want:
    // var selectedItemIndex = dataGrid.Items.IndexOf(selectedItem);

    dataGrid.SelectedItem = selectedItem;
}