Странный, вопрос. Если интересует как это реализованно в каком-то конкретном контроле, то можешь открыть сурсы и почитать. Например тот же DataGrid, хотя на самом деле там чёрт ногу сломит. Использование PropertyChanged идет до самого верхнего класа Visual и даже DependencyObject, потому-что свойств очень много и каждый класс наследует предыдущий и добавляет свои новые свойства и соответственно вызывает на их изменение PropertyChanged.
P.S.
Если правильно понял, задачу.
То берем первый день месяца и смотрим если это пн записаем в переменную a = 7, вт 6, ..сб 2, вс 1.
Далее берем последний день месяца и смотрим если это пн то записываем в переменную b = 1, вт =2, ... сб 6, вс 7.
Далее res = Math.min(a,b) это и будет наш ответ
Лентюй, Ну просто они начали набирать популярность из-за того что они придумали и внедрили алгоритм ранжирования, когда у конкурентов всё было довольно топорно. Ну это было в Америке, в России гугл еще долго был в аутсайдерах. Ну и в то время гугл еще не был сервисом это был поисковик.