Как заменить значение столбца в строке в ListView с помощью C # .net? - PullRequest
1 голос
/ 22 января 2011
ID      Item          Code
1       Item a        1565
2       Item x        **2565**
3       Item w        1245
4       Item f        1345

У меня есть формат ListView Details, как выше, и я хочу изменить значение содержимого ячейки, которое находится между отметкой **.Как я могу изменить его таким образом, чтобы он отображался в той же строке и не нуждался в обновлении других значений в строке или таблице.

Пожалуйста, направьте меня на C # .net

1 Ответ

4 голосов
/ 22 января 2011

По сути, это зависит от того, как вы заполните ListView.

. В любом случае, подобный код должен работать практически во всех ситуациях:

var idIdx = listView1.Columns["ID"].Index;
var codeIdx = listView1.Columns["Code"].Index;

foreach (ListViewItem item in listView1.Items)
{
    if (item.SubItems[idIdx].Text == "2")
    {
        item.SubItems[codeIdx].Text = "new value...";
        break;
    }
}

Простоcaveat:

, чтобы убедиться, что первые 2 строки этого кода работают, вы должны правильно инициализировать свойство Name столбцов, когда создаете их:

, либо используя соответствующиедобавить перегрузку:

listView1.Columns.Add("ID", "ID");

или установив ее позже:

var col = listView1.Columns.Add("ID");
col.Name = "ID";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...