コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }