public void Add(Message message) { var newList = new List <Message>(Messages) { message }; message.Conversation = this; Messages.Replace(newList.OrderBy(m => m.SortDate)); if (IsExpanded) { Expanded.Replace(Messages.Reverse().Skip(1)); } OnPropertyChanged("First"); OnPropertyChanged("Last"); }