¿Por qué no funciona este enlace de datos?

Tengo una clase ViewModel que contiene una lista de puntos, y estoy tratando de vincularla a una Polilínea. La polilínea recoge la lista inicial de puntos, pero no se da cuenta cuando se agregan puntos adicionales a pesar de que implemente INotifyPropertyChanged. ¿Qué pasa?

<StackPanel>
    <Button Click="Button_Click">Add!</Button>
    <Polyline x:Name="_line" Points="{Binding Pts}" Stroke="Black" StrokeThickness="5"/>
</StackPanel>

C # lado:

// code-behind
_line.DataContext = new ViewModel();
private void Button_Click(object sender, RoutedEventArgs e)
{
    // The problem is here: NOTHING HAPPENS ON-SCREEN!
    ((ViewModel)_line.DataContext).AddPoint();
}

// ViewModel class
public class ViewModel : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;

    public PointCollection Pts { get; set; }

    public ViewModel()
    {
        Pts = new PointCollection();
        Pts.Add(new Point(1, 1));
        Pts.Add(new Point(11, 11));
    }

    public void AddPoint()
    {
        Pts.Add(new Point(25, 13));
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs("Pts"));
    }
}

Respuestas a la pregunta(6)

Su respuesta a la pregunta