public AddRule(SirenOfShameSettings settings) { IocContainer.Instance.Compose(this); _settings = settings; InitializeComponent(); EnableAudioSettings(enable: false); EnableLightSettings(enable: false); _when.DataSource = Rule.TriggerTypes.Select(i => new KeyValuePair <TriggerType, string>(i.Key, i.Value)).ToList(); _when.DisplayMember = "Value"; var buildDefinitions = _settings.CiEntryPointSettings .SelectMany(i => i.BuildDefinitionSettings) .Where(bd => bd.Active) .ToList(); buildDefinitions.Insert(0, _anyBuild); _build.DataSource = buildDefinitions; _build.DisplayMember = "Name"; _audio.DataSource = SirenOfShameDevice.AudioPatterns.ToList(); _audio.DisplayMember = "Name"; _windowsAudio.DataSource = new[] { new Sound { DisplayName = "None" } } .Concat(ResourceManager.InternalAudioFiles) .Concat(_settings.Sounds) .ToList(); _windowsAudio.DisplayMember = "DisplayName"; _lights.DataSource = SirenOfShameDevice.LedPatterns.ToList(); _lights.DisplayMember = "Name"; _who.DataSource = _settings.AllUsersMinusMappedOnes(); }