Xamarin Forms DataBinding Wont update
<p>I am struggling with DataBindings. I have a ListView (Displays Correctly) With items and I need to be able to edit the items in the list.</p>

<p>I select an item which opens a modal (works fine) with the information of the selected item (works fine). When I click save, the item is not updated - The display is not updated, but if I select the item again, the data is correctly held.</p>

<p>I have the following object:</p>

<pre><code> public class Investigation : IDisposable
 {
     public List&lt;InjuredPerson&gt; InjuredPersonnel { get; set; }
     ...
 }
</code></pre>

<p>My ViewModel is like this:</p>

<pre><code>public class InvestigateUtilityDamagesViewModel : INotifyPropertyChanged
{
    Investigation investigation;
    private InvestigateDamages damage;

    public event PropertyChangedEventHandler PropertyChanged;

    public InvestigateUtilityDamagesViewModel(InvestigateDamages damage)
    {
        this.damage = damage;
        Investigation = new Investigation();
        Investigation.DamageID = damage.DamageID;
        Investigation.InjuredPersonnel = damage.DamageDetails.InjuredPersonnel;
    }

    public Investigation Investigation
    {
        get { return investigation; }
        set
        {
            if (investigation == value)
            {
                return;
            }
            investigation = value;
            OnPropertyChanged("Investigation");
        }
    }

    void OnPropertyChanged(string propertyName)
    {
        PropertyChangedEventHandler handler = PropertyChanged;
        if (handler != null)
            handler(this, new PropertyChangedEventArgs(propertyName));
        SaveInvestigation();
    }
}
</code></pre>

<p>The XAML:</p>

<pre><code> &lt;ListView ItemsSource="{Binding Investigation.InjuredPersonnel, Mode=TwoWay}"&gt;
...
</code></pre>

<p>The page which updates Information sends a Message like so: (works fine)</p>

<pre><code>MessagingCenter.Send&lt;EditInjuredPerson, InjuredPerson&gt;(this, "InjuredPersonEdited", _injuredPerson);
</code></pre>

<p>And the receiving side (works fine)</p>

<pre><code>private void SaveInjuredPerson(EditInjuredPerson sender, InjuredPerson InjuredPerson)
    {
        var Injured = this.FindByName&lt;ListView&gt;("listInjuries").SelectedItem as InjuredPerson;
        if (Injured != null)

        {
            Injured.Name = InjuredPerson.Name;
            Injured.Position = InjuredPerson.Position;
            Injured.ContactNumber = InjuredPerson.ContactNumber;
            Injured.Injury = InjuredPerson.Injury;
            Injured.NextOfKinName = InjuredPerson.NextOfKinName;
            Injured.NextOfKinNumber = InjuredPerson.NextOfKinNumber;
        }
    }
</code></pre>