void Main()
{
dynamic employee = new ExpandoObject();
((INotifyPropertyChanged)employee).PropertyChanged +=
new PropertyChangedEventHandler(HandlePropertyChanges);
employee.Name = "John Smith";
employee.Name = "John Smith2";
var expando = employee as IDictionary<string, Object>;
expando["Name"] = "John Smith3";
}
private static void HandlePropertyChanges(
object sender, PropertyChangedEventArgs e)
{
Console.WriteLine("{0} has changed.", e.PropertyName);
}
// Output:
// Name has changed.
// Name has changed.
// Name has changed.