1

たくさんのグループを含むグリッドビューがあります。グループ内のデータ行を上下に移動する上下ボタンもあります。データ行がグループの最後の行である場合、ユーザーが「下」ボタンを押したときに行が何もしないようにします。データ行がグループの最後の行かどうかを確認するにはどうすればよいですか?

4

1 に答える 1

2

これを試すことができます

int rowHandle = view.FocusedRowHandle;
int groupRow = view.GetParentRowHandle(rowHandle);
var childRows = GetChildRowsHandles(view, groupRow);
if (childRows.Count > 0 && childRows.Last() == rowHandle)
{ 
    //selected row is the last datarow of its GroupRow
}

public List<int> GetChildRowsHandles(GridView view, int groupRowHandle)
    {
        List<int> childRows = new List<int>();  

        if (!view.IsGroupRow(groupRowHandle))
        {
            return childRows;
        }

        int childCount = view.GetChildRowCount(groupRowHandle);
        for (int i = 0; i < childCount; i++)
        {
            int childHandle = view.GetChildRowHandle(groupRowHandle, i);
            if (view.IsDataRow(childHandle))
            {
                if (!childRows.Contains(childHandle))
                    childRows.Add(childHandle);
            }
        }

        return childRows;
    }

注: コードはテストしていません。やってみて。

于 2013-07-17T20:59:13.663 に答える