Используйте «обычное» свойство, а не автоматическое свойство, и вызовите событие change в установщике:
private int _date;
public int Date
{
get { return _date; }
set
{
if (value != _date)
{
_date = value;
// raise change event here
}
}
}
Чтобы вызвать событие изменения, если это стандартное событие INotifyPropertyChanged.PropertyChanged:
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs("Date");
}
Рекомендуется изолировать это в методе OnPropertyChanged.
Если вы вызываете пользовательское событие DateChanged, логика будет аналогичной, но с другими именами и аргументами событий.