コード例 #1
0
 private void SubscribeMessagesChanged()
 {
     ChatModel.Messages.CollectionChanged += ((sender, e) =>
     {
         if (e.OldItems != null)
         {
             foreach (MessageModel it in e.OldItems)
             {
                 Messages.RemoveAt(Messages.FindIndex(x => x.MessageModel == it));
             }
         }
         if (e.NewItems != null)
         {
             foreach (MessageModel it in e.NewItems)
             {
                 int i = 0;
                 for (; i < Messages.Count; i++)
                 {
                     if (Messages[i].MessageModel.Id > it.Id)
                     {
                         break;
                     }
                 }
                 var mb = new MessageBlockViewModel(_manager, it);
                 Messages.Insert(i, mb);
             }
         }
     });
 }
コード例 #2
0
 private void InitMessages()
 {
     foreach (var model in ChatModel.Messages)
     {
         var view = new MessageBlockViewModel(_manager, model);
         Messages.Add(view);
     }
 }