0

我正在使用 Telerik Datagrid 控件来显示 100 条记录。在我的应用程序中,用户选择他们想要编辑的,我使用表单来允许用户更新记录。同样,如果他们希望添加新记录,则单击“添加”并出现空白版本的表单。

我没有直接绑定到数据源。我通过将 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 回答