mvvm обновление живого списка в View

128
11 мая 2018, 09:14

Внутри модели есть живой список устройств, у каждого устройства есть свои поля. Как оповещать список в VM, чтоб тот обновил View?

Обновление полей в этом списке смог сделать через INPC, но мне кажется это не лучшим вариантом, так как модель захламляется и не удается двоично сериализовать ее. Я вижу что необходимо написать дополнительную модель к существующим и в ней оповещать об изменениях, но тогда нужно подстроить логику чтоб работала с этими классами, а не с самой моделью.

Модель:

[Serializable]
public class Group
{
    public string Name { get; set; }
    public List<Computer> PCList { get; set; }
}
[Serializable]
public class Computer
{
    public string Name { get; set; }
    public bool Status { get; set; }
}

Логика:

public class Logic
{
    private List<Group> _Groups;
    public List<Group> Groups { get { return _Groups; } set { _Groups = value; } }
    // code
    public Logic()
    {
        // code
        _Groups = LoadGroups();
        _Server.Start();
    }
    private void ClientConnectedEvent(object sender, MyArgs e)
    {
        Computer comp = new Computer();
        // code
        _Groups[0].PCList.Add(comp);
    }
}

VM:

public class MainWindowViewModel
{
    public MainWindowViewModel()
    {
        Groups = new ObservableCollection<Group>(App.Logic.Groups);
    }
    public ObservableCollection<Group> Groups { get; set; }
}
READ ALSO
Как сверстать таблицу с разной шириной ячеек?

Как сверстать таблицу с разной шириной ячеек?

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

203
Что за рамка? Как его удалить с CSS? [требует правки]

Что за рамка? Как его удалить с CSS? [требует правки]

Что за рамка и как его удалить (или заменить именной цвет на другое посредством JS), при указании свойства width: 100% для изображения появляется...

173
Вёрстка для перевода в PDF

Вёрстка для перевода в PDF

У меня есть задание сверстать страницы, которые в будущем будут переведены в pdfПроблема в том, что footer и header должны повторяться на каждой странице

186