ItemContainerGenerator.Items 在 .NET 4.0 中
ItemContainerGenerator.Items in .NET 4.0
我使用 .NET 4.5 开始了一个项目,现在我必须切换到 .NET 4.0。一切正常,除了缺少 ItemContainerGenerator 的 "Items"-属性。我用它来查找以键入键的字母开头的 DataGrid 行。
代码是:
ReadOnlyCollection<object> rows = datagrid.ItemContainerGenerator.Items;
datagrid.ScrollIntoView(rows[rows.Count - 1]);
foreach (DataRowView row in rows)
{
string name = row.Row.ItemArray[0].ToString();
if (name.StartsWith(keyChar + "", StringComparison.OrdinalIgnoreCase))
{
datagrid.ScrollIntoView(row);
datagrid.UpdateLayout();
return;
}
}
注意:调试时,"Items"-属性存在并填充。
您是否知道访问 "Items"-属性 的方法或无需使用 "Items"-属性 即可获得相同功能的解决方法?欢迎任何建议。
ItemContainerGenerator.Items 似乎出现在 .NET 4.0 中:https://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid_properties(v=vs.100).aspx
.NET Framework 4 Other Versions
...
ItemContainerGenerator Gets the ItemContainerGenerator that is associated with the control. (Inherited from ItemsControl.)
我使用 .NET 4.5 开始了一个项目,现在我必须切换到 .NET 4.0。一切正常,除了缺少 ItemContainerGenerator 的 "Items"-属性。我用它来查找以键入键的字母开头的 DataGrid 行。 代码是:
ReadOnlyCollection<object> rows = datagrid.ItemContainerGenerator.Items;
datagrid.ScrollIntoView(rows[rows.Count - 1]);
foreach (DataRowView row in rows)
{
string name = row.Row.ItemArray[0].ToString();
if (name.StartsWith(keyChar + "", StringComparison.OrdinalIgnoreCase))
{
datagrid.ScrollIntoView(row);
datagrid.UpdateLayout();
return;
}
}
注意:调试时,"Items"-属性存在并填充。
您是否知道访问 "Items"-属性 的方法或无需使用 "Items"-属性 即可获得相同功能的解决方法?欢迎任何建议。
ItemContainerGenerator.Items 似乎出现在 .NET 4.0 中:https://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid_properties(v=vs.100).aspx
.NET Framework 4 Other Versions
...
ItemContainerGenerator Gets the ItemContainerGenerator that is associated with the control. (Inherited from ItemsControl.)