+5  A: 

It is not enough to have an ObservableCollection, if you want to update binding on specific properties, your Person type must implement INotifyPropertyChanged.

EDIT

I've just noticed, your left ListBox is not updated because you have no DataTemplate set for a Person object. What you have now is a ToString() implementation, which does not get updated once it reports to the UI.

You need something like this:

<DataTemplate DataType="{x:Type local:Person}">
   <StackPanel Orientation="Horizontal">
        <TextBlock Text="{Binding Name}"/>
        <TextBlock Text="("/>
        <TextBlock Text="{Binding Age}"/>
        <TextBlock Text=")"/>
    </StackPanel>
</DataTemplate>
kek444
or inherit from DependencyObject
Sven Hecht
No, that isn't enough, the value bound to must be either a *DependencyProperty* (on a DependencyObject) or the owning type must implement INotifyPropertyChanged (properly).
kek444
Yes, the basics are easily overlooked. Edited my answer.
kek444
Tx man .
Peter
+1  A: 

example:

public class Person : DependencyObject
{
    public static readonly DependencyProperty NameProperty = DependencyProperty.Register(
        "Name",
        typeof(string),
        typeof(Person)
    );

    public static readonly DependencyProperty AgeProperty = DependencyProperty.Register(
        "Age",
        typeof(int),
        typeof(Person)
    );

    public string Name
    {
        get { return (string)GetValue(NameProperty); }
        set { SetValue(NameProperty, value); }
    }

    public int Age
    {
        get { return (int)GetValue(AgeProperty ); }
        set { SetValue(AgeProperty , value); }
    }

    public override string ToString()
    {
            return String.Format("{0} ({1})",Name,Age);     
    }
}
Sven Hecht
Yes, this is implementing the interface **properly** :)
kek444
well I thought I change it to DependencyObject cause you can also use it in XAML like <myNamespace:Person Name="bla" Age="test"/> if one would want something like that
Sven Hecht
Note however that inheriting from DependencyObject for this case is really unnecessary overhead.
kek444
But still this isn't updating the list automatically...
Peter