title: Data binding throwing exception in async thread
body: <p>I'm currently writing a simple Xamarin.Forms chat application for learning.</p>
  
  <p>This application has a ListView which has been binded to an ObservableCollection. By right, whenever I add an object to the ObservableCollection, it should show up in the list.</p>
  
  <p>I have an asynchronous thread which polls the server every second for messages and then adds that message to the ObservableCollection, which then appears in the ListView.</p>
  
  <p>This works fine on Android, but doesn't seem to work on UWP for some strange reason.</p>
  
  <p>The exception that I get in the console is a  <code>System.Runtime.InteropServices.COMException</code>.</p>
  
  <p>MainPage.xaml.cs:</p>
  
  <pre><code>    ObservableCollection&lt;MessageListItem&gt; messageList = new ObservableCollection&lt;MessageListItem&gt;();
  
      public MainPage()
      {
          InitializeComponent();
  
          //Bind the ListView to the ObservableCollection
          MessageListView.ItemsSource = messageList;
  
          //Start listening to messages
          var messagesTask = connection.GetMessagesAsync(messageList);
      }
  </code></pre>
  
  <p>GetMessagesAsync():</p>
  
  <pre><code>    public async Task GetMessagesAsync(ObservableCollection&lt;MessageListItem&gt; collection)
      {
          string watermark = null;
  
          while(true)
          {
              Debug.WriteLine("Reading message every 1 second");
  
              var activitySet = await Client.Conversations.GetActivitiesAsync(MainConversation.ConversationId, watermark);
              watermark = activitySet?.Watermark;
  
              foreach(Activity activity in activitySet.Activities)
              {
                  if (activity.From.Name == "MarsBot")
                  {
                      //Add object to binded collection
                      collection.Add(new MessageListItem(activity.Text, activity.From.Name));
                  }             
              }
  
              await Task.Delay(1000);
          }
      }
  </code></pre>
  
  <p>Am I doing something wrong here?</p>