private void SettingTabsOnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { Dispatcher.Invoke(() => { try { if (e.Action == NotifyCollectionChangedAction.Add) { foreach (var block in e.NewItems.Cast <ISettingsTab>()) { SettingsBox.AddSettingsBlock(block); } } if (e.Action == NotifyCollectionChangedAction.Remove) { foreach (var block in e.OldItems.Cast <ISettingsTab>()) { SettingsBox.RemoveSettingsBlock(block); } } } catch (Exception ex) { Debugger.Error(ex.ToString()); } }); }
private Settings(ObservableCollection <ISettingsTab> settingTabs) { InitializeComponent(); this.settingTabs = settingTabs; foreach (var tab in settingTabs) { SettingsBox.AddSettingsBlock(tab); } this.settingTabs.CollectionChanged += SettingTabsOnCollectionChanged; }