Notifications

Classes that represent entities such as customer or product generally contain public properties that describe the entities. The Customer class in Example 3-2 shows a simple entity that has a handful of public properties describing the customer. When a property’s value is changed, the entity does not communicate the change at all. If an instance of the entity is bound to a set of controls, the controls will not be notified or updated with the new values from the class instance.

Adding notifications to a class will enable the class to be able to raise events when its properties are changed, which in turn can be received by binding targets. The INotifyPropertyChanged interface is the device that carries out this mission.

Implementing the INotifyPropertyChanged Interface

The next set of examples will demonstrate how to make an entity support the INotifyPropertyChanged interface and hook into XAML-based binding modes. Example 3-5 shows the Product class written in C# using automatic properties. Using automatic properties restricts the property accessors to having the simplest getter and setter code that merely gets and sets the values. You would have to modify this code to use formal getters and setters to implement the INotifyPropertyChanged interface.

Example 3-5. The Product class

C# public class Product { public int ProductId { get; set; } public string ProductName { get; set; } public int QuantityPerUnit { get; set; } public decimal UnitPrice { get; set; } public int UnitsInStock{ ...

Get Data-Driven Services with Silverlight 2 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.