private void OnAddField() { using (Fields.AcquireLock()) { var fieldViewModel = new FieldViewModel(); fieldViewModel.PropertyChanged += FieldViewModelPropertyChanged; Fields.Add(fieldViewModel); } RaisePropertyChanged("CommandSyntax"); }
private void FieldViewModelPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { if (e.PropertyName == "DeleteRequested") { var fieldViewModel = sender as FieldViewModel; if (fieldViewModel != null) { using (Fields.AcquireLock()) { fieldViewModel.PropertyChanged -= FieldViewModelPropertyChanged; Fields.Remove(fieldViewModel); } } } RaisePropertyChanged("CommandSyntax"); }