DevExpress XtraGrid (WinForms)に日付範囲のコレクション (各日付範囲はPeriodオブジェクトで表されます) をリストしています。
期間を 2 つに分割するメソッド (分割日はユーザーが入力します) では、コードは次のようになります。
- フォーカスされた行の期間参照を取得します。((期間)GridViewPeriods.GetRow(selectedRows[0]);)
 - 選択した期間を複製します。
 - 新しく複製された期間の参照を取得します。
 
仕事が終わったら、新しく複製された期間に焦点を当てたいと思います。この時点で、ピリオドのリファレンスは 2 つしかありません。
XtraGrid には、値に基づいて行を検索できるメソッドが見つかりませんでした (オブジェクトを渡して RowHandle を返すなど)。
私はこのヘルパーメソッドを書くことになりました:
    public int GetDataRowIndex(RatePeriod period)
    {
        int foundIndex = 0;
        for (int i = 0; i < GridViewRatePeriods.DataRowCount; i++)
        {
            if ((RatePeriod)GridViewRatePeriods.GetRow(i) == period)
            {
                foundIndex = i;
                break;
            }
        }
        return foundIndex;
    }
次に、次のように新しく作成された期間にフォーカスを設定します。
GridViewPeriods.FocusedRowHandle = GetDataRowIndex(tailingPeriod);
それを行うためのより短いまたはよりスマートな方法はありますか?