/// <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; } } } }
/// <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; } } } } }