2016-11-26 58 views
-1

有没有办法通过引用行ID来选择DataGrid行?如何以标准方式编程选择DataGrid行?

我通过下面的代码编程选择一个数据网格,

public static void GetFocusOfSelectedRow(DataGrid datagrid) 
    {      
     object oItem = datagrid.Items[0]; 
     datagrid.SelectedItem = oItem; 
     datagrid.ScrollIntoView(oItem); 
    } 

这只是选择在数据网格中的第一行。

我希望能够通过使用主键指定要选择哪一行。即一行的主键ID为123456。我怎么能通过LINQ或其他方式获得ID为123456的行索引号?

回答

1

您必须将您的项目集合投射到您知道它具有要过​​滤的属性的类型集合。

尝试

public static void GetFocusOfSelectedRow(DataGrid datagrid) 
    { 
     ItemCollection items = datagrid.Items; 
     List<SomeType> collection = new List<SomeType>(); 

     foreach (var item in items) 
     { 
      SomeType obj = item as SomeType ; 
      if(obj != null) 
       collection.Add(obj); 
     } 

     SomeType result = collection.Where(a => a.SomeProperty == SomeValue) 
      .FirstOrDefault(); 

     datagrid.SelectedItem = result; 
     datagrid.ScrollIntoView(result); 
    } 
+0

感谢您的帮助。 “人”不是“结果”吗? – KyloRen

+0

对不起,忘了格式化我的答案。你是对的,它应该 –

+0

我投了你的答案,因为它有助于得到我需要的东西,我现在就接受它。欢呼和感谢您的帮助。 – KyloRen

相关问题