this.Teams = new ObservableCollection <TeamViewModel>(_ команды); - PullRequest
0 голосов
/ 23 июля 2011

Я новичок в mvvm и не могу найти ответ на следующий вопрос:

У меня есть сетка данных в Silverlight, которая привязывается к наблюдаемой коллекции Команды модели представления: Сначала я выбираю несколько командных объектов в списке, а затем передаю их в свою наблюдаемую коллекцию. (Public ObservableCollection Teams)

Теперь я хочу добавить строку в таблицу данных, поэтому я создал кнопку в представлении и подключил Icommand, которая добавляет более или менее пустую команду к моей коллекции:

private void Add()
    {

                    Team _team = new Team();

                    _team.recid = 1;
                    _team.teamid = "";
                    _team.ruleset = "";
                    _team.name = "";
                    this.Teams.Add(new TeamViewModel(_team));
    }

Я думаю, что notifypropertyaled не запускается (только когда я устанавливаю коллекцию), что мне нужно сделать, чтобы уведомить представление о моей измененной модели представления?

Заранее спасибо,

Michael

Ответы [ 3 ]

0 голосов
/ 23 июля 2011

Если вы привязываете данные к свойству Teams (которое относится к типу ObservableCollection), ваша сетка должна автоматически обновляться.

Нет причин вызывать RaisePropertyChanged ("Teams") при добавлении или удалении элементов из ObservableCollection.

Короче говоря, это должно уже работать.Если этого не произойдет, вам нужно отправить больше кода.

0 голосов
/ 29 июля 2011

Полагаю, это не показывается в сетке, потому что я добавил пустые строки для teamid / name.Когда я делаю так, строка видна в сетке: _team.recid = 1;_team.teamid = "test";_team.ruleset = "test";_team.name = "test";_team.rowstate = GlobalVariables.Rowstate.added;Спасибо Клаусу / Брандорф за ваши комментарии!С уважением, Майк

0 голосов
/ 23 июля 2011

Добавление к ObservableCollection не вызывает PropertyChanged, а вызывает событие с изменением коллекции.

Самый простой способ - вручную RaisePropertyChanged для свойства Team в конце функции добавления.

...