private void RenderRule([NotNull] XElement ruleElement, int index) { Debug.ArgumentNotNull(ruleElement, nameof(ruleElement)); var listBoxItem = new ListBoxItem(); Listbox.Items.Add(listBoxItem); var rule = new RuleListBoxItem { Element = ruleElement, Index = index }; listBoxItem.Content = rule; listBoxItem.Tag = ruleElement; var elements = new List <XElement>(); var conditions = ruleElement.Element(@"conditions"); if (conditions != null) { RuleModel.Flatten(conditions, elements, @"or", string.Empty); RenderConditions(rule, elements); RuleModel.RemoveOperatorAttributes(); } var actions = ruleElement.Element(@"actions"); if (actions != null) { RenderActions(rule, actions.Elements()); } }
private void RenderConditions([NotNull] RuleListBoxItem rule, [NotNull] IEnumerable <XElement> elements) { Debug.ArgumentNotNull(rule, nameof(rule)); Debug.ArgumentNotNull(elements, nameof(elements)); var list = elements.ToList(); var index = 0; var count = list.Count(); foreach (var element in list) { RenderCondition(rule, element, index, count); index++; } }
private void RenderAction([NotNull] RuleListBoxItem rule, [NotNull] XElement element, int index, int actionCount) { Debug.ArgumentNotNull(rule, nameof(rule)); Debug.ArgumentNotNull(element, nameof(element)); var listBoxItem = new ListBoxItem(); Listbox.Items.Add(listBoxItem); var action = new ActionListBoxItem(this, element, index, IsEditable) { CanMoveUp = index > 0, CanMoveDown = index < actionCount - 1 }; listBoxItem.Content = action; listBoxItem.Tag = element; }
private void RenderCondition([NotNull] RuleListBoxItem rule, [NotNull] XElement element, int index, int conditionCount) { Debug.ArgumentNotNull(rule, nameof(rule)); Debug.ArgumentNotNull(element, nameof(element)); var listBoxItem = new ListBoxItem(); Listbox.Items.Add(listBoxItem); var item = new ConditionListBoxItem(this, element, index, IsEditable); item.ToggleExcept += ToggleExcept; item.ToggleOperator += ToggleOperator; item.CanMoveUp = index > 0; item.CanMoveDown = index < conditionCount - 1; listBoxItem.Content = item; listBoxItem.Tag = element; }