C# 如何使用条件以编程方式选择DataGrid行?
是否有方法通过引用行ID来选择DataGrid行 我通过下面的代码以编程方式选择DataGridC# 如何使用条件以编程方式选择DataGrid行?,c#,wpf,linq,datagrid,C#,Wpf,Linq,Datagrid,是否有方法通过引用行ID来选择DataGrid行 我通过下面的代码以编程方式选择DataGrid public static void GetFocusOfSelectedRow(DataGrid datagrid) { object oItem = datagrid.Items[0]; datagrid.SelectedItem = oItem; datagrid.ScrollIntoView
public static void GetFocusOfSelectedRow(DataGrid datagrid)
{
object oItem = datagrid.Items[0];
datagrid.SelectedItem = oItem;
datagrid.ScrollIntoView(oItem);
}
这只是选择DataGrid中的第一行
我希望能够通过使用主键指定要选择的行。例如,假设一行的主键ID为
123456
。如何通过LINQ或其他方式获取ID为123456
的行索引号?您必须将items集合强制转换为您知道其具有要筛选的属性的类型的集合
试一试
publicstaticvoid GetFocusOfSelectedRow(DataGrid-DataGrid)
{
ItemCollection items=datagrid.items;
列表集合=新列表();
foreach(项目中的var项目)
{
SomeType obj=项目作为SomeType;
如果(obj!=null)
集合。添加(obj);
}
SomeType结果=集合。其中(a=>a.SomeProperty==SomeValue)
.FirstOrDefault();
datagrid.SelectedItem=结果;
datagrid.ScrollIntoView(结果);
}
哦,对不起,忘了格式化我的答案。你是对的,我应该投票支持你的答案,因为它帮助我得到了我所需要的,我现在就接受它。干杯,谢谢你的帮助。
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);
}