On another post ([Prism BindableBase.SetProperty()](https://stackoverflow.com/questions/33726294/prism-bindablebase-setproperty)), @brian-lagunas said he prefers to expose the Model as a property and bind the View to the model properties. He gave the following example code:

```
 public class MyViewModel : BindableBase
 {
     private Person _myPerson;
     public Person Person
     {
         get { return _myPerson; }
         set { SetProperty(ref _myPerson, value); }
     } 
 }

```

However, I'm unsure how I'm to bind to the properties. Does this notify of property changes?

Update:
Is this how I would implement INPC on the model? If so, what have I gained that I would not have had by putting the properties in the view model which already supports INPC?

```
public class Person : INotifyPropertyChanged
{
    private string _FirstName;
    private string _LastName;
    public string FirstName { get { return _FirstName; } set => SetProperty(ref _FirstName, value); }
    public string LastName { get { return _LastName; } set => SetProperty(ref _LastName, value); }
    private void SetProperty<T>(ref T storage, T value, [CallerMemberName] string propertyName = null)
    {
        if (!Equals(storage,value))
        {
            storage = value;
            OnPropertyChanged(propertyName);
        }
    }
    private void OnPropertyChanged(string propertyName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
    public event PropertyChangedEventHandler PropertyChanged;
}

```