private static LuaWpfCreator CreateComboField(IPpsDataFieldReadOnlyProperties properties) { dynamic ui = new LuaUI(); //dynamic combo = LuaWpfCreator.CreateFactory(ui, typeof(ComboBox)); dynamic combo = LuaWpfCreator.CreateFactory(ui, typeof(PpsComboBox)); combo.SelectedValue = PpsDataFieldBinding.CreateWpfBinding(properties.GetService <PpsDataFieldInfo>(true)); return(combo); } // func CreateComboField
private LuaWpfCreator CreateCheckField(IPpsDataFieldReadOnlyProperties properties) { dynamic ui = new LuaUI(); dynamic check = LuaWpfCreator.CreateFactory(ui, typeof(CheckBox)); //check.Content = properties.displayName; check.IsThreeState = false; check.IsChecked = PpsDataFieldBinding.CreateWpfBinding(properties.GetService <PpsDataFieldInfo>(true)); return(check); } // func CreateCheckField
void AddLuaCoreCtrlToPanel() { var ctrls = luaServer.GetAllLuaCoreCtrls(); foreach (var c in ctrls) { var ui = new LuaUI( luaServer, formMgrSvc, c); flyLuaUiPanel.Controls.Add(ui); } }
private LuaWpfCreator CreateTextField(IPpsDataFieldReadOnlyProperties properties, bool formattedText = false) { var ui = new LuaUI(); dynamic txt = LuaWpfCreator.CreateFactory(ui, typeof(PpsTextBox)); var isReadOnly = properties.TryGetProperty <bool>("IsReadOnly", out var tmpReadOnly) ? (bool?)tmpReadOnly : null; var textBinding = PpsDataFieldBinding.CreateWpfBinding(properties.GetService <PpsDataFieldInfo>(true), append: formattedText ? "Value" : null, isReadOnly: isReadOnly); var inputType = formattedText ? PpsTextBoxInputType.MultiLine : PpsTextBoxInputType.None; var setMaxLength = true; switch (Type.GetTypeCode(properties.DataType)) { case TypeCode.Decimal: PpsDataFieldFactory.SetNumericBinding(ui, txt, textBinding, true, 2); inputType = PpsTextBoxInputType.DecimalNegative; setMaxLength = false; break; case TypeCode.Single: PpsDataFieldFactory.SetNumericBinding(ui, txt, textBinding, true, 3); inputType = PpsTextBoxInputType.DecimalNegative; setMaxLength = false; break; case TypeCode.Double: PpsDataFieldFactory.SetNumericBinding(ui, txt, textBinding, true, 6); inputType = PpsTextBoxInputType.DecimalNegative; setMaxLength = false; break; case TypeCode.SByte: PpsDataFieldFactory.SetNumericBinding(ui, txt, textBinding, true, 0); inputType = PpsTextBoxInputType.IntegerNegative; break; case TypeCode.Int16: PpsDataFieldFactory.SetNumericBinding(ui, txt, textBinding, true, 0); inputType = PpsTextBoxInputType.IntegerNegative; break; case TypeCode.Int32: PpsDataFieldFactory.SetNumericBinding(ui, txt, textBinding, true, 0); inputType = PpsTextBoxInputType.IntegerNegative; break; case TypeCode.Int64: PpsDataFieldFactory.SetNumericBinding(ui, txt, textBinding, true, 0); inputType = PpsTextBoxInputType.IntegerNegative; break; case TypeCode.Byte: PpsDataFieldFactory.SetNumericBinding(ui, txt, textBinding, false, 0); inputType = PpsTextBoxInputType.Integer; break; case TypeCode.UInt16: SetNumericBinding(ui, txt, textBinding, false, 0); inputType = PpsTextBoxInputType.Integer; break; case TypeCode.UInt32: PpsDataFieldFactory.SetNumericBinding(ui, txt, textBinding, false, 0); inputType = PpsTextBoxInputType.Integer; break; case TypeCode.UInt64: PpsDataFieldFactory.SetNumericBinding(ui, txt, textBinding, false, 0); inputType = PpsTextBoxInputType.Integer; break; case TypeCode.DateTime: if (inputType != PpsTextBoxInputType.Date && inputType != PpsTextBoxInputType.Time) { inputType = PpsTextBoxInputType.Date; } if (inputType == PpsTextBoxInputType.Date) // we can set a binding converter { PpsDataFieldFactory.SetDateBinding(ui, txt, textBinding, false, 0); } break; } if (properties.TryGetProperty <PpsTextBoxInputType>("InputType", out var tmpInputType)) { inputType = tmpInputType; } txt.InputType = inputType; txt.Text = textBinding; SetTextFieldProperties((object)txt, properties); if (setMaxLength && properties.TryGetProperty <int>("MaxLength", out var maxInputLength)) { txt.MaxLength = maxInputLength; } if (properties.TryGetProperty <bool>("Nullable", out var tmpNullable)) { txt.IsNullable = tmpNullable; } if (isReadOnly.HasValue) { txt.IsReadOnly = isReadOnly; } if (formattedText) { txt.FormattedValue = PpsDataFieldBinding.CreateWpfBinding(properties.GetService <PpsDataFieldInfo>(true), append: "FormattedValue", isReadOnly: true); } return(txt); } // func CreateTextField