Дорожка изменяется в Измененном Свойстве

Я хочу отфильтровать свой заметный набор объектов viewmodel к объектам, которые обновляются. Я подписался на событие Property Changed для каждого viewmodel. Но я не уверен, как я отслежу объекты, таким образом, конечным результатом были бы только объекты, которые обновляются в UI.

    ProgramViewModel Cur=new ProgramViewModel(prg);
                        Cur.PropertyChanged += new PropertyChangedEventHandler(Cur_PropertyChanged);
                        program.Add(Cur);
//here program is my observable collection of viewmodels

 void Cur_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {  
          //What will be the code that will filter out only updated objects
            throw new NotImplementedException();
        }

//Now in my Save Event handler

private void Save_Click(object sender, RoutedEventArgs e)
        {
          foreach (ProgramViewModel model in program)
            {
                //I need only updated objects here to be added to database
            }
       }
1
задан developer 29 April 2010 в 20:27
поделиться

1 ответ

Я бы просто сохранил их в HashSet . Таким образом, вам не придется беспокоиться об отслеживании, какие из них уже есть в коллекции:

private readonly HashSet<ProgramViewModel> changedPrograms = new HashSet<ProgramViewModel>();

void Cur_PropertyChanged(object sender, PropertyChangedEventArgs e)
{  
    changedPrograms.Add((ProgramViewModel)sender);
}

private void Save_Click(object sender, RoutedEventArgs e)
{
    foreach (ProgramViewModel model in changedPrograms)
    {
        ...
    }
}
2
ответ дан 3 September 2019 в 00:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: