public static StackElementVM Create(IStackElementParentVM parent, ObservableCollection <IStackElementVM> stackElementVMs, string name, ElementType elementType, string marginText, string text, TextSizeType textSize, Action onClick, bool isReadOnly) { StackElementVM elementVM; if (stackElementVMs != null && stackElementVMs.Count > 0) { elementVM = new StackElementVM(parent, null); elementVM.Element = new ItemElementVM(elementVM, ElementType.None); stackElementVMs.Add(elementVM); } elementVM = new StackElementVM(parent, name); if (marginText != null) { elementVM.MarginElement = new ItemElementVM(elementVM, ElementType.Label) { Text = marginText, TextSize = textSize }; } elementVM.Element = new ItemElementVM(elementVM, elementType) { Text = text, TextSize = textSize, IsReadOnly = isReadOnly }; if (onClick != null) { elementVM.Element.Command = new RelayCommand((obj) => onClick()); } return(elementVM); }
public void RegisterElementVM(StackElementVM elementVM) { if (elementVM.Name != null) { _elements[elementVM.Name] = elementVM; } if (elementVM.Element != null) { elementVM.Element.PropertyChanged += ElementVM_PropertyChanged; } }
//private StackElementVM Create(string name, ElementType elementType, string marginText, string text, TextSizeType textSize, Action onClick) //{ // StackElementVM elementVM; // if (StackElementVMs.Count > 0) // { // elementVM = new StackElementVM(this, null); // elementVM.Element = new ItemElementVM(elementVM, ElementType.None); // StackElementVMs.Add(elementVM); // } // elementVM = new StackElementVM(this, name); // if (marginText != null) // { // elementVM.MarginElement = new ItemElementVM(elementVM, ElementType.Label) { Text = marginText, TextSize = textSize }; // } // elementVM.Element = new ItemElementVM(elementVM, elementType) { Text = text, TextSize = textSize }; // if (onClick != null) // { // elementVM.Element.Command = new RelayCommand((obj) => onClick()); // } // return elementVM; //} private StackVM AddItem(string name, ElementType elementType, string marginText, string text, TextSizeType textSize, Action onClick, bool isReadOnly) { StackElementVMs.Add(StackElementVM.Create(this, StackElementVMs, name, elementType, marginText, text, textSize, onClick, isReadOnly)); _lastAdded = name; return(this); }
public ItemElementVM(StackElementVM parent, ElementType elementType) { _parent = parent; ElementType = elementType; }
public ILayoutVM AddTextZone(string name, string marginText, string text) { MiddleElementVM = StackElementVM.Create(this, null, name, ElementType.TextZone, marginText, text, TextSizeType.Tiny, null, true); return(this); }