Exemple #1
0
        private void EditAccountConfig(string vendor)
        {
            ListView lv = (ListView)this.FindName("lv_" + vendor + "_acc");

            if (lv.SelectedIndex != -1)
            {
                AccountConfig ac = new AccountConfig();
                ac.txtName.IsReadOnly = true;
                ac.Owner = this;
                string        prop   = vendor.ToUpper() + "Account";
                AccountOption accOpt = (dynamic)settings.GetType().GetProperty(prop).GetValue(settings);
                ac.chkIsEnabled.IsEnabled = CheckIfActivateEnabled(accOpt);
                ObservableCollection <ConnectionParam> aos = accOpt.Accounts;
                ConnectionParam ao = aos[lv.SelectedIndex];
                ac.AccName    = ao.AccName;
                ac.Host       = ao.Host;
                ac.Port       = ao.Port;
                ac.ClientId   = ao.ClientId;
                ac.IsActivate = ao.IsActivate;
                ac.IsMulti    = ao.IsMulti;
                ac.ShowDialog();
                if ((bool)ac.DialogResult)
                {
                    ao.AccName    = ac.AccName;
                    ao.Host       = ac.Host;
                    ao.Port       = ac.Port;
                    ao.ClientId   = ac.ClientId;
                    ao.IsActivate = ac.IsActivate;
                    ao.IsMulti    = ac.IsMulti;
                    if (accOpt.IsExclusive && ac.IsActivate)
                    {
                        foreach (ConnectionParam cp in accOpt.Accounts)
                        {
                            if (cp.AccName != ao.AccName)
                            {
                                cp.IsActivate = false;
                            }
                        }
                    }
                    accOpt.Accounts = new ObservableCollection <ConnectionParam>(aos);
                }
            }
        }