Версия Swift для того же:
Всякий раз, когда вам нужно опубликовать уведомление:
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "UpdateAccepted"), object: self)
На контроллере, где вы хотите получить уведомление:
override func viewDidLoad(_ animated: Bool) {
super.viewDidLoad(true) {
NotificationCenter.default.addObserver(self, selector: #selector(updateAccepted(notification:)), name: NSNotification.Name(rawValue: "UpdateAccepted"), object: nil)
}
deinit {
NotificationCenter.default.removeObserver(self, name: NSNotification.Name(rawValue: "UpdateAccepted"), object: nil)
}
@objc func updateAccepted(notification: Notification) {
handleRefresh()
}
Я бы, вероятно, создал ObservableColletion с вашими элементами POCO в нем. Затем вы можете привязать этот ObservableCollection к любому из элементов управления рендерингом элементов Silverlight. Вам придется изменить шаблон рендеринга по умолчанию, чтобы создать свои вкладки ... но с помощью этого метода ваши вкладки будут постоянно обновляться с элементами в коллекции без необходимости вставлять какой-либо код в код позади файла.
UPDATE
Вот ссылка на форумы Silverlight, где кто-то создал TabControl с помощью ItemsControl с образцом кода XAML:
http://silverlight.net/forums/t/12271.aspx
... просто прокрутите немного вниз, чтобы увидеть образец.
Один из способов сделать это - использовать преобразователь значений (IValueConverter) для возврата POCO, заключенного в TabItem. Я разместил пример здесь как часть связанного вопроса. Также имеется пример привязки xaml и внедрение ViewModel в качестве параметра преобразователя значений.
/ jhd