我想在UltraWinGrid的InitializeRow事件中根据当前行值禁用其他/不同的行
本文关键字:其他 UltraWinGrid InitializeRow 事件 | 更新日期: 2023-09-27 17:49:18
对于在UltraWinGrid中禁用行,我知道我们可以使用这个逻辑
e.Row。激活=激活。NoEdit或e.Row.Activation =激活。禁用
但是我想根据当前行值禁用其他行
您可以通过遍历当前行RowsCollection,转到子带行RowsCollections或转到父行RowsCollection来访问网格中的其他行。要访问这些集合中的任何一个,您可以在InitializeRow事件中使用如下代码:
private void UltraGrid1_InitializeRow(object sender, InitializeRowEventArgs e)
{
// Get the current row RowsCollection
var currentRowsCollection = e.Row.ParentCollection;
// Get the current row child bands rows collections
if(e.Row.ChildBands != null)
{
foreach(UltraGridChildBand childBand in e.Row.ChildBands)
{
var childRowsCollection = childBand.Rows;
}
}
// Get the parent row RowsCollection
if(e.Row.HasParent())
{
var parentRowsCollection = e.Row.ParentRow.ParentCollection;
}
}
到达必需的行集合后,您可以通过索引获得所需的行。然而,在InitializeRow事件中这样做可能有点棘手,因为您可能有GroupByRows, SummaryRows等。因此,您可能需要首先检查行e.Row是什么类型,或者您可以修改您的应用程序逻辑。