У меня есть класс ниже:Entity Framework - Как не запускать CollectionChanged При загрузке коллекции из базы данных?
public class Orcamento
{
public Orcamento()
{
Produtos = new ObservableCollection<Produto>();
Produtos.CollectionChanged += ProdutosCollectionChanged;
}
public int Id { get; set; }
public ObservableCollection<Produto> Produtos { get; private set; }
private void ProdutosCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
//Some process here that should not be run if it is being loaded from the database
}
}
Когда я искать класс бюджета в базе данных, событие CollectionChanged работает. Обратите внимание, что код ниже:
using (var contexto = new Contexto())
{
Orcamento orcamento = contexto.Orcamentos.OrderByDescending(o => o.Id)
.Include(x => x.Produtos)
.FirstOrDefault();
//More some code above...
}
Вопрос: Как я знаю, когда коллекция была изменена пользователем, или когда она была модифицирована путем загрузки базы данных, так как нужно только событие, которое срабатывает, когда коллекция изменяется Пользователь?
Для каких целей вы используете ObservableCollection? М.Б. его легче изменить на другой тип коллекции? –