protected override void OnSelectionMessageReceived(ProductDetailsSelectionChangedMessage msg)
        {
            if (this.Id != msg.ParameterId)
            {
                return;
            }

            var newSelectedValues = msg.ApplyedParameterValues;

            if (newSelectedValues.IsNullOrEmpty())
            {
                ClearSelectedValue();
            }
            else
            {
                SelectedValue = new ApplyedProductParameter
                {
                    Id       = this.Id,
                    DataType = this.DataType,
                    Values   = newSelectedValues
                };

                Items = new ObservableCollection <MultiCollectionItemVM>(Values
                                                                         .Where(x => newSelectedValues.Any(y => y.Id == x.Id))
                                                                         .Select(z => new MultiCollectionItemVM(z.Id, z.ValueName))
                                                                         );
            }

            Messenger.Publish(new ProductDetailsReloadWhenValueChangedMessage(this));
        }
예제 #2
0
        protected override void OnSelectionMessageReceived(ProductDetailsSelectionChangedMessage msg)
        {
            if (this.Id != msg.ParameterId)
            {
                return;
            }

            var newSelectedValue = msg.ApplyedParameterValues?.SingleOrDefault();

            if (newSelectedValue == null)
            {
                ClearSelectedValue();
            }
            else
            {
                var filterValue = Values.FirstOrDefault(x => x.Id == newSelectedValue.Id);
                if (filterValue != null)
                {
                    ValueName     = filterValue.ValueName;
                    SelectedValue = new ApplyedProductParameter
                    {
                        Id       = this.Id,
                        DataType = this.DataType,
                        Values   = new List <ApplyedProductParameterValue> {
                            newSelectedValue
                        }
                    };
                }
            }

            Messenger.Publish(new ProductDetailsReloadWhenValueChangedMessage(this));
        }
 protected abstract void OnSelectionMessageReceived(ProductDetailsSelectionChangedMessage msg);