Изменить поле в listview wpf c#

276
04 ноября 2017, 12:07

Добавляю значение в listview так :

this.listView.Items.Add(new MyItem { Name = info[0], Done = "false" });

где

public class MyItem
{
    public string Name { get; set; }
    public string Done { get; set; }
}

в xaml

<GridViewColumn Header="Name" Width="100" DisplayMemberBinding="{Binding Name, StringFormat={}{0:C}}"></GridViewColumn>
<GridViewColumn Header="Done" Width="50" DisplayMemberBinding="{Binding Done, StringFormat={}{0:C}}"></GridViewColumn>

Возник вопрос, как изменить значение Done у выделенной строки ?

Пытался как так, но безуспешно

Type t = typeof(MyItem);
var m = (MyItem)Convert.ChangeType(listView.SelectedItem, t);
m.Done = "true";
listView.SelectedItem = m;
Answer 1

Ваш MyItem никак не оповещает заинтересованных лиц об изменениях, поэтому нужно обновлять вручную:

listView.Items.Refresh();
READ ALSO
Классы и их наследование с#

Классы и их наследование с#

Доброго времени суток! Вопрос в следующем: Есть класс TableClassParent вот выдержка из этого класса

251
Запечатанный класс или ServiceLocator Catel?

Запечатанный класс или ServiceLocator Catel?

Думаю кто работал с данным фреймворком не нужно объяснять что такое сервисы в Catel, и для чего они используются

237
C# Unity3D - Чекпоинт

C# Unity3D - Чекпоинт

Как можно сделать невидимые чекпоинты, и когда персонаж проходит через них, у него появляются новые способности(Например: в коде, персонаж...

252
С# Кракозябры при заполнении массива из файла

С# Кракозябры при заполнении массива из файла

Пытаюсь загрузить файл с Ru и En именами

254