private void DeleteGroup(ConnectionGroupViewModel obj)
        {
            var isSelected = obj == SelectedObject;
            int index      = 0;

            if (isSelected)
            {
                index = ConnectionGroupViewModels.IndexOf(obj);
            }

            ConnectionGroupViewModels.Remove(obj);
            if (isSelected)
            {
                if (ConnectionGroupViewModels.Count == index)
                {
                    index--;
                }
                if (index >= 0)
                {
                    SelectedObject = ConnectionGroupViewModels[index];
                }
                else
                {
                    SelectedObject = null;
                }
            }
        }
示例#2
0
        public ConnectionDescriptionViewModel(
            ConnectionDescription source,
            ConnectionGroupViewModel parent,
            KnownConnections knownConnections,
            IFileSelector fileSelector,
            ConnectionParameterViewModelFactory connectionParameterViewModelFactory)
        {
            Parent            = parent;
            _knownConnections = knownConnections;
            _fileSelector     = fileSelector;

            _autoCheckTimer          = new Timer(1000);
            _autoCheckTimer.Elapsed += AutoCheckTimer_Elapsed;
            _uiScheduler             = TaskScheduler.FromCurrentSynchronizationContext();
            _networkService          = new NetworkService();
            _connectionParameterViewModelFactory = connectionParameterViewModelFactory;

            PingAccessibilityIconUri = new Uri("pack://application:,,,/Images/gray-icon.png");
            PortAccessibilityIconUri = new Uri("pack://application:,,,/Images/gray-icon.png");

            InitFromSource(source);

            ConnectionTypes        = _knownConnections._knownConnectionProfiles.Keys.Except(new[] { "NetCat" }).ToList();
            SelectedConnectionType = Source.ConnectionTypeName;
        }