获取DataGrid行索引的值?

时间:2015-07-20 20:32:26

标签: c# wpf datagrid row indexof

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

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

我还有一个CollectionViewSource来源作为列表,其中包含标识符和引荐来源。

当点击referrers列中的某个项目时,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);

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

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;
}