本文介绍了WPF Datagrid 设置选定行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何使用 Datagrid.SelectedItem 以编程方式选择一行?

How do I use the Datagrid.SelectedItem to select a row programmatically?

我是否首先必须创建 DataGridRow 对象的 IEnumerable 并将匹配的行传递给这个 SelectedItem 属性,或者我该怎么做?

Do I first have to create a IEnumerable of DataGridRow objects and pass the matching row to this SelectedItem property or how do I do it?

在选择行之前,我需要首先将第一列单元格的单元格内容与 TextBox.Text 匹配.

I need to match the cell content of the first columns cell with a TextBox.Text first, before selecting the row.

推荐答案

我的代码遍历 datagrid 第一列的单元格并检查单元格内容是否等于 textbox.text 值并选择行.

My code iterates through cells of the datagrid's first column and checks if cell content equals to the textbox.text value and selects the row.

for (int i = 0; i < dataGrid.Items.Count; i++)
{
    DataGridRow row = (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromIndex(i);
    TextBlock cellContent = dataGrid.Columns[0].GetCellContent(row) as TextBlock;
    if (cellContent != null && cellContent.Text.Equals(textBox1.Text))
    {
        object item = dataGrid.Items[i];
        dataGrid.SelectedItem = item;
        dataGrid.ScrollIntoView(item);
        row.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
        break;
    }
}

这篇关于WPF Datagrid 设置选定行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-16 04:52