void ParameterPropertyChanged(object obj, PropertyChangedEventArgs e) { if (e.PropertyName == "Valid") { ParameterItem item = obj as ParameterItem; if (item.Valid) { if (++iValidCount == iParameters.Count) { iControl.IsEnabled = true; } } else { if (iValidCount-- == iParameters.Count) { iControl.IsEnabled = false; } } } }
public ParameterList(Control aControl, IList <IParameter> aParameters, IList <INode> aNodes) { iControl = aControl; iValidCount = 0; iParameters = new List <ParameterItem>(); foreach (IParameter parameter in aParameters) { parameter.Init(aNodes); if (parameter.Valid) { iValidCount++; } ParameterItem p = new ParameterItem(parameter); p.PropertyChanged += new PropertyChangedEventHandler(ParameterPropertyChanged); iParameters.Add(p); } iControl.IsEnabled = (iValidCount == iParameters.Count); }