0

Telerik Datagrid コントロールを使用して、何百ものレコードを表示しています。私のアプリでは、ユーザーは編集したいものを選択し、フォームを使用してユーザーがレコードを更新できるようにします。同様に、新しいレコードを追加する場合は、[追加] をクリックすると、空白のフォームが表示されます。

データ ソースに直接バインドしていません。Itemsource をレコードのリストに設定して、グリッドにデータを提供しています。

ユーザーがレコードを編集すると、スクロールして編集したレコードを簡単に選択できます。

            //find row index of selected item
            var lastRowUpdated = RadGridAssetTable.Items.IndexOf(this.RadGridAssetTable.SelectedItem);

            // move to index following edit
            RadGridAssetTable.ScrollIndexIntoView(lastRowUpdated);
            RadGridAssetTable.SelectedItem = lastRowUpdated; 

ただし、新しいレコードを追加すると、新しく追加されたグリッド項目をプログラムでスクロールして選択する方法がわかりません。

事実上、(非表示の) レコード ID のグリッド行を検索し、コントロールで行インデックスを選択してスクロールしたい

プログラムでグリッド内のデータを検索する方法はないようです。誰かがこれを行う方法について正しい方向を示すことができますか?

よろしく

4

1 に答える 1

0

さて、私はこのように解決しました。

 var lastRowUpdated = 0;
        var i = 0;

        if (_assetsavedData.AssetId == -1)
        {
            foreach (var rowItem in from object row in RadGridAssetTable.Items select row as AssetLinked)
            {
                Debug.WriteLine(rowItem.AssetItems.AssetCommonName);

                if (rowItem.AssetItems.AssetCommonName.Equals(_assetsavedData.AssetCommonName))
                {
                    lastRowUpdated = i;
                    Debug.WriteLine("found at " + i);
                    break;
                }

                i++;
            }
        }
        else
        {
            lastRowUpdated = RadGridAssetTable.Items.IndexOf(this.RadGridAssetTable.SelectedItem);
        }
于 2013-03-02T17:26:16.387 に答える