GCJ - бесплатный инструмент, который может скомпилировать либо байт-код, либо собственный код. Помня, что это своего рода поражение цели Java.
ObservableCollection не будет уведомлять элемент управления, если свойство элемента изменилось - если только элемент не уведомляет абонентов через INotifyPropertyChanged.
Почему он работает таким образом? Коллекция - это просто контейнер, и хотя он знает о количестве элементов и когда элемент был добавлен или удален, он не знает, «что внутри» элемента, и какие свойства должны поднимать уведомления. Даже когда вы сами реализуете INotifyPropertyChanged, вам нужно будет решить, какие свойства должны создавать событие.