/// <summary> /// UnSelect A field from the field list. /// </summary> /// <param name="fieldViewModel">selected field.</param> public void UnselectDisplayField(ISelectorFieldViewModel fieldViewModel) { var path = fieldViewModel.SystemName; var field = SelectedDisplayFields.FirstOrDefault(f => f.FullPath == path); if (field != null) { SelectedDisplayFields.Remove(field); UpdateCanMoveFields(); } var newstr = string.Empty; ParentModel.Model.HeaderDisplayFields = string.Empty; if (!string.IsNullOrEmpty(SelectedFields)) foreach (var str in this.SelectedFields.Split(',').Where(str => str != path && !string.IsNullOrEmpty(str))) { newstr += str + ","; var lfieldViewModel = this.SelectedDisplayFields.FirstOrDefault(f => f.FullPath == str); if (string.IsNullOrEmpty(this.ParentModel.Model.HeaderDisplayFields)) { if (lfieldViewModel != null) { this.ParentModel.Model.HeaderDisplayFields = lfieldViewModel.DisplayName; } } else if (lfieldViewModel != null) { this.ParentModel.Model.HeaderDisplayFields += ", " + lfieldViewModel.DisplayName; } } SelectedFields = newstr; }
/// <summary> /// Select A field from the field list. /// </summary> /// <param name="fieldViewModel">Selected field.</param> public void SelectDisplayField(ISelectorFieldViewModel fieldViewModel) { var path = fieldViewModel.SystemName; if (SelectedFields.Contains(path + ",")) { return; } var maxOrder = 0.0; if (!string.IsNullOrEmpty(SelectedFields)) maxOrder = SelectedFields.Split(',').Length; SelectedFields += path + ","; if (string.IsNullOrEmpty(ParentModel.Model.HeaderDisplayFields)) ParentModel.Model.HeaderDisplayFields = fieldViewModel.Name; else ParentModel.Model.HeaderDisplayFields += ", " + fieldViewModel.Name; var field = new CrossRefFieldEdit(); field.FieldName = fieldViewModel.Name; field.FullPath = fieldViewModel.SystemName; field.Order = maxOrder + 1.0; field.FieldGuid = fieldViewModel.Model.Guid; var vm = new SelectedFieldViewModel(); vm.Initialize(field, this); SelectedDisplayFields.Add(vm); UpdateCanMoveFields(); }