コード例 #1
0
        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);
        }
コード例 #2
0
 protected void OnPropertyChanged(string propertyName)
 {
     PropertyChangedHandler?.Invoke(this, new PropertyChangedEventArgs(propertyName));
 }
コード例 #3
0
ファイル: ViewModel.cs プロジェクト: time4vps/vpn-win-app
 public void OnPropertyChanged([CallerMemberName] string name = null)
 {
     PropertyChangedHandler?.Invoke(this, new PropertyChangedEventArgs(name));
 }