/// <summary>
        /// React on sub model property changes.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected virtual void SubModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            if (e.PropertyName == "IsActive")
            {
                ISelectElementSubViewModel v = sender as ISelectElementSubViewModel;
                if (v != null && v.IsActive)
                {
                    if (activeSubModel != null)
                        activeSubModel.IsActive = false;

                    activeSubModel = sender as ISelectElementSubViewModel;

                    // update IsSelectionValid
                    if (activeSubModel.SelectedElement == null)
                    {
                        IsSelectionValid = false;
                    }
                    else
                    {
                        if (selectableElements != null)
                        {
                            if (this.selectableElements.Contains(activeSubModel.SelectedElement))
                                IsSelectionValid = true;
                            else
                                IsSelectionValid = false;
                        }
                        else
                            IsSelectionValid = true;
                    }                    
                }
            }
            else if (e.PropertyName == "SelectedElement")
            {
                if (sender == activeSubModel && activeSubModel != null)
                {
                    if (activeSubModel.SelectedElement == null)
                    {
                        IsSelectionValid = false;
                    }
                    else
                    {
                        if (selectableElements != null)
                        {
                            if (this.selectableElements.Contains(activeSubModel.SelectedElement))
                                IsSelectionValid = true;
                            else
                                IsSelectionValid = false;
                        }
                        else
                            IsSelectionValid = true;
                    }

                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// React on sub model property changes.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected virtual void SubModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            if (e.PropertyName == "IsActive")
            {
                ISelectElementSubViewModel v = sender as ISelectElementSubViewModel;
                if (v != null && v.IsActive)
                {
                    if (activeSubModel != null)
                    {
                        activeSubModel.IsActive = false;
                    }

                    activeSubModel = sender as ISelectElementSubViewModel;

                    // update IsSelectionValid
                    if (activeSubModel.SelectedElement == null)
                    {
                        IsSelectionValid = false;
                    }
                    else
                    {
                        if (selectableElements != null)
                        {
                            if (this.selectableElements.Contains(activeSubModel.SelectedElement))
                            {
                                IsSelectionValid = true;
                            }
                            else
                            {
                                IsSelectionValid = false;
                            }
                        }
                        else
                        {
                            IsSelectionValid = true;
                        }
                    }
                }
            }
            else if (e.PropertyName == "SelectedElement")
            {
                if (sender == activeSubModel && activeSubModel != null)
                {
                    if (activeSubModel.SelectedElement == null)
                    {
                        IsSelectionValid = false;
                    }
                    else
                    {
                        if (selectableElements != null)
                        {
                            if (this.selectableElements.Contains(activeSubModel.SelectedElement))
                            {
                                IsSelectionValid = true;
                            }
                            else
                            {
                                IsSelectionValid = false;
                            }
                        }
                        else
                        {
                            IsSelectionValid = true;
                        }
                    }
                }
            }
        }