private Button ConstructResetButton(CompositionFilters filterSnapshot) { var resetButton = new Button { Text = "Reset composition", Enabled = !Equals(new CompositionFilters(), filterSnapshot) }; resetButton.Click += (_, _) => { var filterGroups = new IReadOnlyList <PlayerCountFilter>[] { filterSnapshot.CoreProfessionFilters, filterSnapshot.HeartOfThornsSpecializationFilters, filterSnapshot.PathOfFireSpecializationFilters, }; foreach (var group in filterGroups) { foreach (var filter in group) { filter.PlayerCount = 0; filter.FilterType = PlayerCountFilterType.GreaterOrEqual; } } }; filterSnapshot.PropertyChanged += (_, _) => { resetButton.Enabled = !Equals(new CompositionFilters(), filterSnapshot); }; return(resetButton); }
private Control ConstructApplyButton(LogFilters filters, CompositionFilters filterSnapshot) { var applyButton = new Button { Text = "Apply", Enabled = !Equals(filters.CompositionFilters, filterSnapshot) }; applyButton.Click += (_, _) => { filters.CompositionFilters = filterSnapshot.DeepClone(); applyButton.Enabled = !Equals(filters.CompositionFilters, filterSnapshot); }; filterSnapshot.PropertyChanged += (_, _) => { applyButton.Enabled = !Equals(filters.CompositionFilters, filterSnapshot); }; return(applyButton); }