我要做的是从内容中获取行索引。
我有一个包含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);
答案 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;
}