基于变量选择和聚焦数据网格

Selecting and Focusing a Datagrid based on a variable

我想保持这个简短而甜蜜。我不知道如何设置焦点并根据用户输入转到特定行,例如 TextBox 或 ComboBox。我一直在尝试不同的方法来尝试编写它,但没有成功。我有一个组合框,当他们插入 id 为 1567 的输入时,我希望数据网格找到变量 id 为 1567 的行。我知道之前必须这样做,因为它似乎是人们真正会使用的东西在应用程序中。

澄清更多

我有这个table

ID FirstName LastName Comments
123 Kyle        Bro     Comments???
145 Zach        Gred    Something??
178 Derrick     Davidson More??

我想要 select ID 字段等于 145 的行,而不是实际的行号 1。我正在从数据库中提取数据,所以我想基于一个单元格不是行 ID。

感谢 D_Learning 我用代码 select 得到了它

try
{
     if(dataGrid2.SelectedItem == null)
     {
         dataGrid2.SelectedItem = dataGrid2.Items.GetItemAt(0);
     }
     var selectedObj = dataGrid2.Items.Cast<DataRowView>().FirstOrDefault(a => a[0].ToString() == IDComboBox.Text);
     if (selectedObj != null)
     {
          dataGrid2.SelectedItem = selectedObj;
          dataGrid2.ScrollIntoView(selectedObj);
          dataGrid2.Focus();
     }
}
catch (InvalidOperationException  e)
{

}

我的问题已通过添加 dataGrid2.SelectedItem = dataGrid2.Items.GetItemAt(0) 得到解决;并检查空值。

我认为您可以通过以下方式实现您的目标:

var selectedObj = dgGrid.Items.Cast<YourClass>().First(a=> a.ID = txtFilter.Text);
if(selectedObj != null)
    dgGrid.SelectedItem =  selectedObj;

如果以上内容不适合您,请告诉我。