繁体   English   中英

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM