在我的一個C#Winform中,我有一個DataGridView,當用戶按下刷新按鈕時我會更新。更新後設置DataGridView SelectedRows
問題是所選行在過程中丟失。
我想能夠做到以下幾點:
private void function Refresh()
{
UpdateBegin(); // Keep the selected row in memory
Update();
UpdateEnd(); // Apply the selected row to the DataGridView
}
這裏是更新的功能。它更新數據源,清除所有列,並帶回那些需要用正確的標題文字:
private void Update()
{
allItem = DataRepository.LotProvider.GetByIdProduit(detail.IdProduit)
dataGridView1.DataSource = allItem;
dataGridView1.Columns.Clear();
// Get a dictionary of the required column ID/shown text
Dictionary<string, string> dictionary = InitDisplayedFields();
foreach (KeyValuePair<string, string> column in dictionary)
// If the grid does not contain the key
if (!dataGridView1.Columns.Contains(column.Key))
{
// Add the column (key-value)
int id = dataGridView1.Columns.Add(column.Key, column.Value);
// Bind the property
dataGridView1.Columns[id].DataPropertyName = column.Key;
}
}
然而,我的DataGridView的選擇的行屬性只讀。
有沒有解決這個問題的方法?
你能告訴我們更多關於你的更新嗎?它是否清除所有行,然後從某個數據庫中取出最新的數據?我問的原因是,除非刪除部分選擇內容,否則應該可以在不更改選擇的情況下添加和刪除行。在這種情況下,我相信這個選擇只會被你刪除的內容所改變。 – 2013-05-07 18:40:33
Update函數獲取並更新數據源,清除dataGrid並返回所需的列。 – 2013-05-07 18:48:06