Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.ComponentModel;
- using System.Threading;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- var nosyClass = new NosyClass();
- var chatter = new ChattyClass();
- nosyClass.AddChatter(chatter);
- Console.WriteLine("chatter added");
- Thread.Sleep(1000);
- chatter.SomeMember = 100;
- Console.ReadLine();
- }
- }
- public class ChattyClass
- {
- private int someMember;
- public event PropertyChangedEventHandler PropertyChanged;
- public int SomeMember
- {
- get { return this.someMember; }
- set
- {
- if (this.someMember != value)
- {
- someMember = value;
- OnPropertyChanged("SomeMember");
- }
- }
- }
- // Create the OnPropertyChanged method to raise the event
- protected void OnPropertyChanged(string name)
- {
- PropertyChangedEventHandler handler = PropertyChanged;
- if (handler != null)
- {
- handler(this, new PropertyChangedEventArgs(name));
- }
- }
- }
- public class NosyClass
- {
- private List<ChattyClass> myChatters = new List<ChattyClass>();
- public void AddChatter(ChattyClass chatter)
- {
- myChatters.Add(chatter); //start listning to property changed events
- chatter.PropertyChanged += new PropertyChangedEventHandler(chatter_PropertyChanged);
- }
- private void chatter_PropertyChanged(object sender, PropertyChangedEventArgs e)
- {
- Console.WriteLine("A property has changed: " + e.PropertyName);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement