/// <summary> /// Adds new element to chat list /// </summary> /// <param name="dataChanged"></param> void AddGroupToChatList(List <Group> dataChanged) { if (dataChanged == null) { return; } foreach (var group in dataChanged) { //Get last message from dataBase var lastMess = UnitOfWork.Database.MessagesTableRepo.FindLast(MessagesTableFields.ReceiverId.ToString(), group.Id.ToString()); //Becouse Items is ObservableCollection we should remove elements from the main thread App.Current.Dispatcher.Invoke(() => { ChatList.Items.Add(new ChatListItemViewModel(group, lastMess)); }); //Sort list by the last message time ChatList.SortChatList(); } }