private void Settings_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { switch (e.PropertyName) { case nameof(PrefixListText): PrefixList = PrefixListText.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); break; case nameof(UserBlacklistText): UserBlacklist = UserBlacklistText.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); break; case nameof(UserNicknamesText): UserNicknames = new Dictionary <string, string>( UserNicknamesText .Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries) .Select(x => x.Split(new[] { ':' }, StringSplitOptions.RemoveEmptyEntries)) .ToDictionary(x => x[0], y => y[1]), StringComparer.OrdinalIgnoreCase); break; // For every class we have to call this pattern case nameof(SubscriberNotification): SubscriberNotification.PropertyChanged += (s, e) => Safe(this); SubscriberNotification.PropertyChanged += (s, e) => PropertyChangedHandler.Invoke(this, new System.ComponentModel.PropertyChangedEventArgs(nameof(Settings))); break; case nameof(RaidNotification): RaidNotification.PropertyChanged += (s, e) => Safe(this); RaidNotification.PropertyChanged += (s, e) => PropertyChangedHandler.Invoke(this, new System.ComponentModel.PropertyChangedEventArgs(nameof(Settings))); break; case nameof(UserJoinedNotification): UserJoinedNotification.PropertyChanged += (s, e) => Safe(this); UserJoinedNotification.PropertyChanged += (s, e) => PropertyChangedHandler.Invoke(this, new System.ComponentModel.PropertyChangedEventArgs(nameof(Settings))); break; case nameof(UserLeftNotification): UserLeftNotification.PropertyChanged += (s, e) => Safe(this); UserLeftNotification.PropertyChanged += (s, e) => PropertyChangedHandler.Invoke(this, new System.ComponentModel.PropertyChangedEventArgs(nameof(Settings))); break; case nameof(BeingHostedNotification): BeingHostedNotification.PropertyChanged += (s, e) => Safe(this); BeingHostedNotification.PropertyChanged += (s, e) => PropertyChangedHandler.Invoke(this, new System.ComponentModel.PropertyChangedEventArgs(nameof(Settings))); break; case nameof(MessageNotification): MessageNotification.PropertyChanged += (s, e) => Safe(this); MessageNotification.PropertyChanged += (s, e) => PropertyChangedHandler.Invoke(this, new System.ComponentModel.PropertyChangedEventArgs(nameof(Settings))); break; case nameof(ClientConnectedNotification): ClientConnectedNotification.PropertyChanged += (s, e) => Safe(this); ClientConnectedNotification.PropertyChanged += (s, e) => PropertyChangedHandler.Invoke(this, new System.ComponentModel.PropertyChangedEventArgs(nameof(Settings))); break; case nameof(NewFollowerNotification): NewFollowerNotification.PropertyChanged += (s, e) => Safe(this); NewFollowerNotification.PropertyChanged += (s, e) => PropertyChangedHandler.Invoke(this, new System.ComponentModel.PropertyChangedEventArgs(nameof(Settings))); break; case nameof(BabelSettings): BabelSettings.PropertyChanged += (s, e) => Safe(this); BabelSettings.PropertyChanged += (s, e) => PropertyChangedHandler.Invoke(this, new System.ComponentModel.PropertyChangedEventArgs(nameof(Settings))); break; } Safe(this); }
protected void OnPropertyChanged(string propertyName) { PropertyChangedHandler?.Invoke(this, new PropertyChangedEventArgs(propertyName)); }
public void OnPropertyChanged([CallerMemberName] string name = null) { PropertyChangedHandler?.Invoke(this, new PropertyChangedEventArgs(name)); }